image_builder

Название Роли

Устанавливает и настраивает Image Builder в качестве узла сборки для создания образов операционных систем Fedora и Red Hat Enterprise Linux. Обратите внимание, это не контейнерные образы, а полные образы ОС, которые могут быть развернуты в облаке, виртуальных средах и на физических серверах.

Требования

  1. Для RHEL/CentOS 7.x необходимо включить репозиторий Extras.
  2. Если вы работаете с локальным узлом, нужно включить репозиторий Ansible для RHEL/CentOS.
  3. Система полагается на linux-system-roles.cockpit для настройки зависимостей для графического интерфейса.
  4. Дополнительные соображения включают:
    • использование linux-system-roles.storage для подготовки выделенной файловой системы для хранения артефактов изображения.
    • использование linux-system-roles.firewall для удаленного доступа к веб-консоли.

Переменные Роли

По умолчанию будут установлены основные пакеты для CLI Image Builder и службы сборки:

  vars:
    ib_packages: [default, minimal, full]
    ib_daemon: [lorax-composer, osbuild-composer]
  • minimal (CLI плюс один из бэкенд-движков, не оба)
    • lorax-composer # бэкенд-движок сборки и API, основанный на lorax из классического установщика Anaconda
    • osbuild-composer # следующий поколением бэкенд-движок и API
    • composer-cli # интерфейс командной строки
  • default (включает GUI из Cockpit)
    • cockpit-composer # графический интерфейс в веб-консоли Cockpit
  • full (то же, что и default сегодня, может измениться в будущем)
    • cockpit-composer # графический интерфейс в веб-консоли Cockpit

Примеры Плейбуков

Самый простой пример.

---
- hosts: fedora, rhel7, rhel8
  become: yes
  roles:
    - linux-system-roles.image_builder

Более сложный пример, который может настроить дополнительное хранилище и брандмауэр.

- hosts: fedora, rhel7, rhel8
  become: yes

# Предполагает, что вы используете RHEL System Roles
#   yum install --enablerepo=rhel-7-server-ansible-2-rpms rhel-system-roles ansible
#
# Предполагает роли из galaxy
#   ansible-galaxy install linux-system-roles.storage
#   ansible-galaxy install linux-system-roles.firewall
#   ansible-galaxy install linux-system-roles.cockpit

  vars:
    USE_FIREWALL: 1
    CONFIG_STORAGE: 0

  tasks:
    # Опциональный пример настройки второго диска для вашего узла для хранения
    # артефактов образа ОС. Типичные минимальные образы занимают около 2 ГБ каждый.
    # Другой вариант - просто создать ссылку на общий доступ NAS.
    - name: Настроить хранилище для Image Builder
      include_role:
        name: linux-system-roles.storage
      vars:
        use_partitions: false
        storage_pools:
          - name: image_builder
            disks: ['']  # что-то вроде vdb
            # type: lvm
            state: present
            volumes:
              - name: composer
                size: "20G"     # оценка в зависимости от количества создаваемых изображений
                # type: lvm
                # fs_type: xfs
                fs_label: "imgbldr"
                mount_point: '/var/lib/lorax/composer'
      when: CONFIG_STORAGE

  # Опционально используйте роль Cockpit для установки полного пакета,
  # иначе роль Image Builder установит минимальные зависимости для GUI.
  - name: Установить и включить сервис веб-консоли RHEL/Fedora (Cockpit)
    include_role:
      name: linux-system-roles.cockpit
    vars:
      cockpit_packages: "full"   # или "minimal" или "default"

  - name: Установить и включить сервис Image Builder RHEL/Fedora
    include_role:
      name: linux-system-roles.image_builder
    vars:
      ib_packages: "full"   # или "minimal" или "default"

  - name: Настроить брандмауэр для веб-консоли
    include_role:
      name: linux-system-roles.firewall
    vars:
      firewall:
        service: cockpit
        state: enabled
    when: USE_FIREWALL

Лицензия

GPLv3

О проекте

Install and enable Image Builder for building OS images

Установить
ansible-galaxy install linux-system-roles/image_builder
Лицензия
gpl-3.0
Загрузки
2899
Владелец