foreman_installer
foreman_installer
Роль для взаимодействия с foreman-installer
Требования
Не требуется
Переменные роли
vars:
foreman_installer:
foreman_installer_pkg: # Пакет для установки foreman. Обычно это "foreman-installer" или "katello".
foreman_installer_verbose: # Запустить установку с опцией -v
foreman_installer_scenario: # Сценарий. Обязательно
foreman_installer_scenarios_answers: # Словарь пользовательских ответов для вашего сценария. См. [Часто задаваемые вопросы](https://github.com/sean797/ansible-role-foreman_installer#faqs).
foreman_installer_options: [] # Массив дополнительных опций для передачи при запуске установщика
foreman_installer_generate_proxy_certs_from: # Строка с хостом Ansible для генерации сертификатов для Katello Smart Proxy
foreman_installer_katello_ca: # Строка с пользовательским сертификатом CA. Только для Katello и Katello Smart Proxy.
foreman_installer_katello_cert: # Строка с пользовательским сертификатом. Только для Katello.
foreman_installer_katello_key: # Строка с пользовательским ключом. Только для Katello.
foreman_installer_katello_csr: # Строка с пользовательским CSR. Только для Katello.
foreman_installer_katello_proxy_cert: # Строка с пользовательским сертификатом. Только для Katello Smart Proxy.
foreman_installer_katello_proxy_key: # Строка с пользовательским ключом. Только для Katello Smart Proxy.
foreman_installer_katello_proxy_csr: # Строка с пользовательским CSR. Только для Katello Smart Proxy.
foreman_installer_katello_certs_dir: # Директория для хранения сертификатов
foreman_installer_update_certs: False # Установите значение True, чтобы принудительно обновить сертификаты.
foreman_installer_update_certs_tar: False # Установите значение True, чтобы принудительно создать и применить новый архив сертификатов Proxy.
# Расширенные опции
foreman_installer_patches: # Массив словарей для патчей установочных файлов. См. defaults/main.yml для примера.
foreman_installer_encryption_key: # Ключ шифрования, который помещается в /etc/foreman/encryption_key.rb. Должен быть одинаковым для всех узлов кластера Foreman.
foreman_installer_katello_cluster_group: # Имя группы инвентаризации с серверами Katello. Требует http://projects.theforeman.org/issues/20021
Пример плейбука
Базовый сценарий Foreman:
- hosts:
- foreman.example.com
roles:
- role: foreman_installer
foreman_installer_scenario: foreman
foreman_installer_scenarios_answers:
foreman:
admin_password: changeme
Сценарий Katello с пользовательскими сертификатами:
- hosts:
- katello.example.com
var_files:
- group_vars/vault_certs.yml
roles:
- role: foreman_installer
foreman_installer_pkg: katello
foreman_installer_scenario: katello
foreman_installer_scenarios_answers:
foreman:
admin_password: changeme
foreman_installer_katello_ca: "{{ vault_foreman_installer_katello_ca }}"
foreman_installer_katello_cert: "{{ vault_katello_cert }}"
foreman_installer_katello_key: "{{ vault_foreman_installer_katello_key }}"
foreman_installer_katello_csr: "{{ vault_foreman_installer_katello_csr }}"
Сценарий Katello Proxy с предоставленным архивом сертификатов:
- hosts:
- foreman-proxy.example.com
roles:
- role: foreman_installer
foreman_installer_pkg: foreman-proxy-content
foreman_installer_scenario: foreman-proxy-content
foreman_installer_scenarios_answers:
foreman_proxy_content:
certs_tar: /root/foreman-proxy.example.com-certs.tar # Этот файл должен уже находиться на диске
pulp_oauth_secret: <сгенерировано при создании архива сертификатов>
parent_fqdn: katello.example.com
foreman_proxy:
oauth_consumer_key: <сгенерировано при создании архива сертификатов>
oauth_consumer_secret: <сгенерировано при создании архива сертификатов>
foreman_base_url: https://katello.example.com
trusted_hosts:
- katello.example.com
- "{{ ansible_fqdn }}"
Сценарий Katello Proxy без предоставленного архива сертификатов:
- hosts:
- foreman-proxy.example.com
roles:
- role: foreman_installer
foreman_installer_pkg: foreman-proxy-content
foreman_installer_scenario: foreman-proxy-content
foreman_installer_generate_proxy_certs_from: katello.example.com
foreman_installer_katello_proxy_cert: "{{ vault_proxy1_cert }}"
foreman_installer_katello_proxy_key: "{{ vault_proxy1_key }}"
foreman_installer_katello_proxy_csr: "{{ vault_proxy1_csr }}"
foreman_installer_katello_ca: "{{ vault_foreman_installer_katello_ca }}"
foreman_installer_scenarios_answers:
foreman_proxy_content:
parent_fqdn: katello.example.com
foreman_proxy:
foreman_base_url: https://katello.example.com
trusted_hosts:
- katello.example.com
Кластер Katello с пользовательскими сертификатами:
Некоторые вещи, о которых стоит помнить:
- Все ключи, секреты и пароли должны быть одинаковыми для всего кластера. Пожалуйста, не используйте значения из этого примера.
- Опция
foreman_installer_patches
используется только для интеграции http://projects.theforeman.org/issues/20021 в мою версию Katello.
- hosts:
- katello1.example.com
- katello2.example.com
var_files:
- group_vars/vault_certs.yml
roles:
- role: foreman_installer
foreman_installer_pkg: katello
foreman_installer_scenario: katello
foreman_installer_scenarios_answers:
foreman_proxy_content:
pulp_oauth_secret: uC2qfoQfPVhdFTBEbS89ykZWQz6BVpcu
foreman:
db_password: KmVzXiWuVWCUZrn4kWF8PRsFG4H4ecqo
initial_location: Global
initial_organization: AMCE
admin_password: changeme
servername: katello.example.com
foreman_url: https://katello.example.com
oauth_consumer_key: xmi95B9qNQoX6owdg4MT8WMCBNhgudYy
oauth_consumer_secret: x6TheD8Z9ZBtgdgBUrqSbPR2rh6k7UQE
foreman_proxy:
registered_name: katello.example.com
registered_proxy_url: https://katello.example.com:9090
oauth_consumer_key: xmi95B9qNQoX6owdg4MT8WMCBNhgudYy
oauth_consumer_secret: x6TheD8Z9ZBtgdgBUrqSbPR2rh6k7UQE
foreman_base_url: https://katello.example.com
trusted_hosts:
- katello.example.com
- katello1.example.com
- katello2.example.com
katello:
oauth_secret: uC2qfoQfPVhdFTBEbS89ykZWQz6BVpcu
foreman_installer_custom_hiera:
candlepin::db_password: L45DkebcvWdgXG9ryzWkfavSvQ23dw8U
foreman_installer_encryption_key: dfc6799e4d722a4e86c786cb0fc96cbbae0151f6
foreman_installer_katello_cluster_group: katello-servers
foreman_installer_katello_ca: "{{ vault_foreman_installer_katello_ca }}"
foreman_installer_katello_cert: "{{ vault_katello_cert }}" # Сертификат должен использовать альтернативные имена DNS с именами всех узлов кластера и VIP-именем.
foreman_installer_katello_key: "{{ vault_foreman_installer_katello_key }}"
foreman_installer_katello_csr: "{{ vault_foreman_installer_katello_csr }}"
foreman_installer_patches:
- { src: files/katello_certs_tools.patch, basedir: /usr/lib/python2.7/site-packages/ }
- { src: files/puppet-certs.patch, basedir: /usr/share/katello-installer-base/modules/certs/ }
Кластер Foreman Proxy, подключенный к кластеру Katello с пользовательскими сертификатами:
Каждый прокси является своим собственным прокси в Foreman, но клиент может использовать VIP-адрес для подключения к любому из них для получения пакетов.
- hosts:
- foreman-proxy1.example.com
- foreman-proxy2.example.com
roles:
- role: foreman_installer
foreman_installer_pkg: foreman-proxy-content
foreman_installer_scenario: foreman-proxy-content
foreman_installer_generate_proxy_certs_from: katello1.example.com
foreman_installer_katello_proxy_cert: "{{ vault_proxy1_cert }}" # Сертификат должен использовать альтернативные имена DNS с именами всех узлов кластера и VIP-именем.
foreman_installer_katello_proxy_key: "{{ vault_proxy1_key }}"
foreman_installer_katello_proxy_csr: "{{ vault_proxy1_csr }}"
foreman_installer_katello_ca: "{{ vault_foreman_installer_katello_ca }}"
foreman_installer_scenarios_answers:
foreman_proxy_content:
parent_fqdn: katello.example.com
foreman_proxy:
foreman_base_url: https://katello.example.com
trusted_hosts:
- katello1.example.com
- katello2.example.com
- katello.example.com
- foreman-proxy1.example.com
- foreman-proxy2.example.com
- foreman-proxy.example.com
Часто задаваемые вопросы
Как узнать, какие опции нужно указать в переменной foreman_installer_scenarios_answers
?
Вам нужно проверить файл /etc/foreman-installer/scenarios.d/{{ foreman_installer_scenario }}-answers.yaml. Хранение ответов таким образом делает роль идемпотентной, если вы используете foreman_installer_options
, установщик будет выполняться при каждом запуске, чтобы убедиться, что он применен. В то время как этот метод позволяет нам управлять файлом ответов и запускать установщик только при изменениях.
Как удалить опции из переменной foreman_installer_scenarios_answers
?
Вам нужно установить значение в null
.
foreman_installer_scenarios_answers:
foreman:
admin_password: changeme
admin_last_name: null
Как включить или отключить плагин?
Чтобы включить, установите значение в пустой словарь. Чтобы отключить, установите значение в false.
foreman_installer_scenarios_answers:
foreman:
admin_password: changeme
admin_last_name: null
"foreman::plugin::remote_execution": {}
"foreman::plugin::discovery": false
Interacts with foreman-installer/satellite-installer to build Foreman, Katello, Satllite 6, Capsules or Smart Proxies.
ansible-galaxy install sean797/ansible-role-foreman_installer