foreman

Статус сборки

Конфигурация Foreman с помощью Ansible

Эта роль предоставляет способ развёртывания сервера Foreman или Satellite с организацией и контентом.

Эта роль требует следующие Ansible Collections для работы:

  • 'theforeman.foreman' 3.4.0 или выше
  • 'ansible.utils' 2.6.0 или выше
  • 'ansible.posix' 1.4.0 или выше

Проверено с Ansible 2.12 и выше.

Эта роль поддерживает Foreman 3.2 / Katello 4.4 и выше или Red Hat Satellite 6.11 и выше.

Другие требования к контроллеру Ansible:

  • python-netaddr (для задач, связанных с подсетями)

Посмотрите пример инвентаря и плейбуков для получения дополнительных указаний! Или прочитайте мой блог.

Офлайн установка Satellite

Если вы хотите установить Satellite с помощью образа ISO для офлайн установки, убедитесь, что вы настроили репозитории RHEL с ISO установки или с зеркала.

Контентные страницы (CV), Композитные контентные страницы (COV) и публикация

Когда эта роль используется для создания новых контентных страниц и композитов, применяется следующая стратегия:

  • Контентные страницы создаются с тем же именем, что и продукт, который они содержат.
  • Репозитории, которые создаются заново, будут синхронизированы после создания (асинхронно).
  • Композитные контентные страницы, которые создаются заново, будут продвигаться ко всем жизненным окружениям в организации.

Идея в том, что COV являются единственными вещами, связанными с клиентами. Основные CV находятся только в библиотеке и не должны продвигаться в другие окружения.

Все созданные COV имеют включённую авто-публикацию, и приведены примерные плейбуки для «тегирования» новой версии и её публикации.

Обнаружение хостов

Для обнаружения хостов зарегистрируйте следующие записи в DNS, чтобы разрешить FDI сообщать на правильный сервер:

  • Для серверов Foreman:
_x-foreman._tcp.dev.example.com 600 IN  SRV 0 5 443 foreman.dev.example.com
  • Для Smart Proxies Foreman:
_x-foreman._tcp.dev.example.com 600 IN  SRV 0 5 8443 fm-proxy.dev.example.com

Если ваша среда не работает с этими записями, вы также можете установить foreman_discovery_image_autodetect в false. Это позволит использовать настройки по умолчанию для Foreman. Они могут не работать при использовании Smart Proxies.

Установка Smart Proxies

Некоторые настройки, используемые для Smart Proxies, общие с сервером Foreman. Чтобы избежать дублирования настроек, предлагается следующий инвентарь:

[foreman]
foreman.infra.example.com

[foreman_proxies]
fm-proxy.dev.example.com

[foreman_infra]

[foreman_infra:children]
foreman
foreman_proxies

Затем поместите все глобальные настройки для Foreman в group_vars для foreman_infra, которые будут доступны как для сервера, так и для прокси. Затем вы можете создать host_vars для каждой системы Foreman (Сервер или Прокси), содержащие специфические для экземпляра настройки.

Ограничения, ошибки и обходные пути

Иногда инсталлятор не может успешно завершить конфигурацию служб Foreman. Задачи Ansible были сконфигурированы (если вы не используете версию Foreman/Satellite, которая не поддерживает --detailed-exitcodes) для срабатывания в таких случаях.

Когда возникает проблема, вы можете следовать следующими шагами для локализации проблемы:

  • Запустите foreman-installer вручную, дополнительные аргументы не требуются. Это даст общее направление для поиска.
  • Проверьте логи в /var/log/foreman-installer.
  • Перезапустите службы Foreman, это иногда «сбрасывает» настройки, после чего Foreman сможет успешно завершить установку.

Для конкретных вопросов смотрите ниже.

Информация о развертывании, обнаружении и UEFI против BIOS против iPXE

Тестирование показало, что различные настройки могут влиять на возможность загрузки хоста по сети.

Мы протестировали следующие конфигурации:

  • Обнаружение:

    • KVM

      • BIOS: работает с настройками по умолчанию, заданными этой ролью. Также можно использовать с iPXE.
      • UEFI: может быть проблематично, вы можете столкнуться с проблемами при попытке загрузить FDI через PXE, так как TFTP может истекать. iPXE работает нормально.
    • HyperV:

      • Gen1 (BIOS): работает с настройками по умолчанию. Также можно использовать с iPXE.
      • Gen2 (UEFI): требуется iPXE, необходимо отключить SecureBoot.
  • Развёртывание ОС:

    • KVM

      • BIOS: работает с настройками по умолчанию, заданными этой ролью. Также можно использовать с iPXE.
      • UEFI: используйте pxe_loader: 'Grub2 UEFI' с настройками по умолчанию. Также можно использовать с iPXE.
    • HyperV:

      • Gen1 (BIOS): работает с настройками по умолчанию до CentOS7, CentOS8 и более поздние версии требуют Gen2.
      • Gen2 (UEFI): требуется iPXE, необходимо отключить SecureBoot.
  • Локальная загрузка

    • KVM

    • HyperV:

      • Gen1: работает нормально.
      • Gen2: работает нормально, необходимо отключить SecureBoot.

Чтобы включить iPXE, установите foreman_deploy_ipxe: true и используйте pxe_loader: 'None' для ваших ОС.

Ошибка: Ошибка создания ОС

Удалите все ОС из Hosts -> Operating systems (вы не можете удалить ту, где находится сервер foreman).

Ограничение: Ресурсы с паролями всегда изменяются

Поскольку модули Foreman не могут увидеть текущий установленный пароль для полей паролей, их нельзя сравнить.

Поэтому эти значения всегда меняются (операционные системы, учетные данные для репозиториев и т. д.). Это может вызвать дополнительные действия в зависимости от измененного ресурса. Это не вызвало проблем до сих пор, но выполнение плейбуков может занять немного больше времени из-за этого.

Ограничение: Группы хостов всегда используют первую таблицу разделов в списке

Поскольку группы хостов являются комбинированным результатом ключей активации, операционных систем и жизненных циклов, степень конфигурируемости ограничена. На момент написания роли все группы хостов будут настроены с одной и той же таблицей разделов.

Пример для развертывания с другой таблицей разделов показан ниже:

# Таблица разделов ниже настроена на игнорирование
# всех дисков, кроме первого, для автоматического разбиения.
# Обратите внимание, что она не определяет автоматически типы дисков (vd или sd)
# так что вам придется зафиксировать диск для использования
foreman_partition_tables:
  - name: 'Kickstart default first disk only'
    os_family: 'Redhat'
    layout: |
      <%#
      kind: ptable
      name: Kickstart default first disk only
      model: Ptable
      description: Управляется Ansible, ваши изменения будут потеряны
      %>
      zerombr
      clearpart --all --initlabel
      ignoredisk --use-only=sda
      autopart <%= host_param('autopart_options') %>

foreman_operating_systems:
  - name: 'CentOS'
    major_version: 7
    arch:
     - 'x86_64'
    os_family: 'Redhat'
    kickstart: true
    kickstart_repo: 'CentOS7-Base'
    partitions:
      - 'Kickstart default first disk only'
    root_pass: 'some_password'
    parameters:
      - name: 'autopart_options'
        value: '--nohome'
О проекте

Ansible toolkit for Foreman

Установить
ansible-galaxy install Thulium-Drake/ansible-role-foreman
Лицензия
gpl-3.0
Загрузки
1416
Владелец