linux-system-roles.image_builder
角色名称
安装和配置图像生成器作为构建节点,用于创建 Fedora 和 Red Hat Enterprise Linux 操作系统镜像。请注意,这些不是容器镜像,而是可以在云、虚拟和裸金属环境中部署的完整操作系统镜像。
要求
- RHEL/CentOS 7.x 依赖于启用 Extras 存储库。
- 如果在本地节点运行,RHEL/CentOS 需要启用 Ansible 存储库。
- 依赖 linux-system-roles.cockpit 来设置图形前端界面的依赖项。
- 可选考虑事项包括:
- 使用 linux-system-roles.storage 准备一个专用文件系统来存储图像工件。
- 使用 linux-system-roles.firewall 使 Web 控制台可以远程访问。
角色变量
默认情况下,将安装图像生成器 CLI 和构建服务的核心软件包:
vars:
ib_packages: [default, minimal, full]
ib_daemon: [lorax-composer, osbuild-composer]
- minimal(CLI 加上一个后端引擎,不是两个都用)
- lorax-composer # 后端构建引擎和 API,基于经典 Anaconda 安装程序中的 lorax
- osbuild-composer # 下一代后端引擎和 API
- composer-cli # 命令行界面
- default(包括来自 Cockpit 的 GUI)
- cockpit-composer # Cockpit Web 控制台中的图形前端
- full(今天与默认相同,未来可能会改变)
- cockpit-composer # Cockpit Web 控制台中的图形前端
示例剧本
最简单的示例。
---
- hosts: fedora, rhel7, rhel8
become: yes
roles:
- linux-system-roles.image_builder
一个更高级的示例,可以配置可选的存储和防火墙。
- hosts: fedora, rhel7, rhel8
become: yes
# 假设您正在使用 RHEL 系统角色
# 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 GB。
# 另一个选项是简单地链接到 NAS 共享。
- name: 配置图像生成器的存储
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 角色安装完整套件,
# 否则图像生成器角色将安装 GUI 的最小依赖项。
- name: 安装并启用 RHEL/Fedora Web 控制台(Cockpit)服务
include_role:
name: linux-system-roles.cockpit
vars:
cockpit_packages: "full" # 或 "minimal" 或 "default"
- name: 安装并启用 RHEL/Fedora 图像生成器服务
include_role:
name: linux-system-roles.image_builder
vars:
ib_packages: "full" # 或 "minimal" 或 "default"
- name: 配置 Web 控制台的防火墙
include_role:
name: linux-system-roles.firewall
vars:
firewall:
service: cockpit
state: enabled
when: USE_FIREWALL
许可证
GPLv3