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
Лицензия
gpl-3.0
Загрузки
1224
Владелец