Product SiteDocumentation Site

1.5. Установка Smart Proxy

Smart proxy — средство выполняющее, вспомогательную для архитектуры Foreman, функцию в организации процесса ввода в работу нового хоста. Для уменьшения задержек в эксплуатации, он может быть размешен на ПК вместе со службой Foreman или на близстоящем ПК. Smart proxy также часто называется как Foreman proxy.

Примечание

Перед установкой Smart proxy необходимо убедиться, что Foreman установлен и инициализирован.
Установка пакета предоставляющего функционал прокси:
# apt-get install smart-proxy
Пред запуском сервиса необходимо изменить содержимое следующих файлов:
  • файл /etc/smart-proxy/config/settings.d/puppetca_http_api.yml:
    ---
    # URL of the puppet master itself for API requests.
    :puppet_url: https://foreman.test.alt:8140
    #
    # SSL certificates used to access the CA API.
    :puppet_ssl_ca: /etc/puppet/ssl/certs/ca.pem
    :puppet_ssl_cert: /etc/puppet/ssl/certs/foreman.test.alt.pem
    :puppet_ssl_key: /etc/puppet/ssl/private_keys/foreman.test.alt.pem
    
  • файл /etc/smart-proxy/config/settings.d/puppet_proxy_puppet_api.yml:
    ---
    # URL of the puppet master itself for API requests.
    :puppet_url: https://foreman.test.alt:8140
    #
    # SSL certificates used to access the puppet API
    :puppet_ssl_ca: /etc/puppet/ssl/certs/ca.pem
    :puppet_ssl_cert: /etc/puppet/ssl/certs/foreman.test.alt.pem
    :puppet_ssl_key: /etc/puppet/ssl/private_keys/foreman.test.alt.pem
    #
    # Smart Proxy api timeout when Puppet's environment classes api is used and classes cache is disabled
    :api_timeout: 30
    
  • файл /etc/smart-proxy/config/settings.d/puppetca.yml:
    ---
    #
    # PuppetCA management
    # Can be true, false, or http/https to enable just one of the protocols
    :enabled: http
    
    # valid providers:
    #   - puppetca_hostname_whitelisting (verify CSRs based on a hostname whitelist)
    #   - puppetca_token_whitelisting (verify CSRs based on a token whitelist)
    :use_provider: puppetca_hostname_whitelisting
    # Puppet version used
    :puppet_version: 7.20.0
    
  • файл /etc/smart-proxy/config/settings.d/puppet.yml:
    ---
    # Can be true, false, or http/https to enable just one of the protocols
    :enabled: http
    # valid providers:
    #   puppet_proxy_mcollective (uses mco puppet)
    #   puppet_proxy_ssh         (run puppet over ssh)
    #   puppet_proxy_salt        (uses salt puppet.run)
    #   puppet_proxy_customrun   (calls a custom command with args)
    #:use_provider: puppet_proxy_customrun
    # Puppet version used
    :puppet_version: 7.20.0
    
  • файл /etc/smart-proxy/config/settings.d/puppetca_hostname_whitelisting.yml:
    ---
    #
    # Configuration of the PuppetCA hostname_whitelisting provider
    #
    :autosignfile: /etc/puppet/autosign.conf
    
  • файл /etc/smart-proxy/config/settings.d/facts.yml:
    ---
    # Can be true, false, or http/https to enable just one of the protocols
    :enabled: true
    
Проверить наличие файла /etc/puppet/autosign.conf и установленные на него разрешения (rw-rw-r--):
# ls -l /etc/puppet/autosign.conf
Если файла нет, создать и установить на него разрешения:
# touch /etc/puppet/autosign.conf
# chmod 664 /etc/puppet/autosign.conf
Для связи Smart proxy с Foreman в файле /etc/smart-proxy/config/settings.yml указать следующие параметры:
:trusted_hosts: [foreman.test.alt,localhost]
:foreman_url: https://foreman.test.alt:2345
:foreman_ssl_ca: /etc/foreman/rootCA.pem
:foreman_ssl_cert: /etc/foreman/ssl_cert.pem
:foreman_ssl_key: /etc/foreman/ssl_key.pem

Примечание

Если не создавалась цепочка с корневым сертификатом root_key.pem, параметры foreman_ssl… в файле /etc/smart-proxy/config/settings.yml могут быть такие:
:foreman_ssl_ca: /etc/puppet/ssl/certs/ca.pem
:foreman_ssl_cert: /etc/foreman/ssl_cert.pem
:foreman_ssl_key: /etc/foreman/ssl_key.pem
Запуск и добавление в автозагрузку службы smart-proxy:
# systemctl enable --now smart-proxy
Smart proxy будет доступен для запросов Foreman по адресу http://localhost:8000. Проверка (должен быть установлен пакет telnet):
# telnet localhost 8000

1.5.1. Настройка подключения Foreman и Smart Proxy

Настройка соединения Foreman и Smart Proxy производится в веб-интерфейсе Foreman. Следует перейти в ИнфраструктураКапсулы и нажать кнопку Создать Смарт Прокси (или перейти по прямой ссылке https://foreman.test.alt:2345/smart_proxies/new):
Кнопка «Создать Смарт Прокси» если Smart Proxy ещё не существует
Кнопка «Создать Смарт Прокси»
В открывшемся окне в поле Имя необходимо указать имя Smart Proxy, в поле URL указать адрес http://foreman.test.alt:8000 и нажать кнопку Применить:
Создание Smart Proxy
Запустить (через перезапуск) службу smart-proxy:
# systemctl restart smart-proxy