thulium_drake.foreman

构建状态

Ansible配置Foreman

此角色提供了一种为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离线安装

如果您希望通过离线安装ISO安装Satellite,请确保已配置来自安装ISO或镜像的RHEL仓库。

内容视图(CV)、复合内容视图(COV)和发布

当此角色用于创建新的内容视图和复合视图时,将应用以下策略:

  • 内容视图的名称与其包含的产品名称相同
  • 新创建的仓库将在创建后进行同步(异步)
  • 新创建的复合内容视图将推广到组织中的所有生命周期环境

这样做的目的是,COV是与客户端相关的唯一内容。基础CV仅存在于库中,不应推广到其他环境。

所有创建的COV都启用了自动发布,并提供了标记新版本和发布的示例剧本。

主机发现

对于主机发现,在DNS中注册以下记录,以便FDI能够报告给正确的服务器:

  • 对于Foreman服务器:
_x-foreman._tcp.dev.example.com 600 IN  SRV 0 5 443 foreman.dev.example.com
  • 对于Foreman智能代理:
_x-foreman._tcp.dev.example.com 600 IN  SRV 0 5 8443 fm-proxy.dev.example.com

如果您的环境无法使用这些记录,您也可以将foreman_discovery_image_autodetect设置为false。这将使用Foreman的默认设置,但在使用智能代理时可能会出现问题。

安装智能代理

某些用于智能代理的设置与Foreman服务器共享。为了避免重复设置,建议使用以下库存:

[foreman]
foreman.infra.example.com

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

[foreman_infra]

[foreman_infra:children]
foreman
foreman_proxies

然后将所有Foreman的全局设置放入foreman_infra的group_vars中,这样服务器和代理都可以使用。然后可以为每个Foreman系统(服务器或代理)创建host_vars,包含实例特定的设置。

限制、错误和解决方法

有时安装程序无法成功完成Foreman服务的配置。除非您运行的Foreman/Satellite版本不支持--detailed-exitcodes,否则已配置Ansible任务来处理这种情况。

当发生问题时,您可以按照以下步骤确定问题所在:

  • 手动运行 foreman-installer,无需参数。这将提供一般的排查方向。
  • 检查/var/log/foreman-installer中的日志。
  • 重启Foreman服务,有时这将“重置”项,使Foreman能够成功完成安装程序。

有关特定问题,请参见以下内容。

部署、发现和UEFI与BIOS与iPXE的信息

测试显示,某些设置可能会影响主机是否能从网络启动。

我们测试了以下设置:

  • 发现:

    • KVM

      • BIOS:使用此角色配置的默认设置正常工作。也可以与iPXE一起使用。
      • UEFI:有点不稳定,您可能会遇到一些尝试从PXE加载FDI时TFTP超时的问题。iPXE正常工作。
    • HyperV:

      • Gen1(BIOS):使用默认配置正常工作。也可以与iPXE一起使用。
      • Gen2(UEFI):需要iPXE,必须禁用SecureBoot。
  • OS部署:

    • KVM

      • BIOS:使用此角色配置的默认设置正常工作。也可以与iPXE一起使用。
      • UEFI:使用 pxe_loader: 'Grub2 UEFI' 配合此角色的默认设置。也可以与iPXE一起使用。
    • HyperV:

      • Gen1(BIOS):使用此角色配置的默认设置,CentOS7正常,CentOS8及以上版本需要Gen2。
      • Gen2(UEFI):需要iPXE,必须禁用SecureBoot。
  • 本地启动

要启用iPXE,请设置foreman_deploy_ipxe: true并使用pxe_loader: 'None'为您的操作系统。

错误:创建操作系统时出错

从主机 -> 操作系统中删除所有操作系统(您无法删除其中的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.foreman
许可证
gpl-3.0
下载
1.4k
拥有者