linux-system-roles.rhc

rhc

ansible-lint.yml ansible-test.yml markdownlint.yml tft.yml tft_citest_bad.yml woke.yml

rhc

一个用于将RHEL系统连接到Red Hat的Ansible角色。

需求

该角色需要subscription-manager,该工具可以从标准的RHEL仓库获得,并且通常在RHEL上默认安装。在其他发行版上,如果未安装,它将会被安装。

该角色还需要insights-client,同样来自于标准的RHEL仓库,前提是启用了Insights支持(默认是启用的)。

此外,该角色需要rhc,同样来自于标准的RHEL仓库,前提是启用了Insights补救功能(默认是启用的)。

集合需求

该角色需要来自外部集合的模块。可以使用以下命令安装它们:

ansible-galaxy collection install -vv -r meta/collection-requirements.yml

角色变量

    rhc_state: present

要连接到Red Hat的系统状态;有效值为present(默认,确保连接)、absentreconnect

当使用reconnect时,如果系统已连接,将首先断开连接;因此,该角色总是会报告“已更改”状态。

    rhc_organization: "你的组织"

用户的组织。在连接时,如果满足以下任一条件,则必须指定此项:

  • 用户属于多个组织
  • 使用激活密钥(见下文的rhc_auth
    rhc_auth: {}

用于连接系统的认证方法。如果系统需要连接(例如,如果之前没有连接),则必须指定。只有一种认证方法可以一次指定。

注意:用于认证的变量被视为机密,因此应进行安全保护。我们建议使用Ansible Vault作为它们的来源。下文的引用仅描述哪些键存在及其用途。

使用用户名和密码进行认证时,使用以下必填键指定login字典:

rhc_auth:
  login:
    username: "你的用户名"
    password: "你的密码"

如有需要,使用rhc_organization

使用激活密钥进行认证时,使用以下必填键指定activation_keys字典,并与rhc_organization一起使用:

rhc_auth:
  activation_keys:
    keys: ["密钥-1", ...]
rhc_organization: "你的组织"
    rhc_server: {}

要连接的注册服务器的详细信息;可以包含以下可选键:

rhc_server:
  hostname: "主机名"
  port: 443
  prefix: "服务器前缀"
  insecure: false
  • hostname是服务器的主机名
  • port是要连接到服务器的端口
  • prefix是对服务器API调用的前缀(以/开头)
  • insecure指定是否禁用对服务器SSL证书的验证
    rhc_baseurl: ""

用于从订阅服务器获取内容的基本URL。

    rhc_repositories: []

要在系统中启用或禁用的仓库列表。每个项目是一个包含两个键的字典:

  • name是仓库的名称;此键是必需的
  • state是该仓库在系统中的状态,可以是enableddisabled;此键是可选的,未指定时默认为enabled
rhc_repositories:
  - {name: "仓库-1", state: enabled}
  - {name: "仓库-2", state: disabled}
    rhc_release: "release"

要为系统设置的发行版。通常用于将RHEL系统锁定到某个小版本。

使用{"state":"absent"}(而不是"")来实际取消为系统设置的发行版。

    rhc_insights:
      state: present

系统是否连接到Insights;有效值为present(默认,确保连接)和absent

    rhc_insights:
      autoupdate: true

系统是否自动更新动态配置。默认启用。

    rhc_insights:
      ansible_host: "示例主机"

使用自定义值配置Ansible主机名称,用于在基于主机的清单(HBI)中的系统记录。该主机名在通过补救措施的剧本中使用。默认情况下为null,如果未指定则使用系统主机名。

该变量的可能值:

  • null或空字符串:不更改Ansible主机名。
  • {state: absent}:在insights-client配置文件中取消设置Ansible主机名,并更新基于主机的清单(HBI)以使用系统主机名。
  • 任何其他字符串值:在基于主机的清单(HBI)中更改Ansible主机名。
    rhc_insights:
      display_name: "示例主机"

使用自定义值配置系统记录在基于主机的清单(HBI)中的显示名称。该显示名称仅用于在清单中识别主机。默认情况下为null,如果未指定则使用系统主机名。

该变量的可能值:

  • null或空字符串:不更改显示名称
  • 任何其他字符串值:在基于主机的清单(HBI)中更改显示名称。

注意:如果在注册时未明确设置,显示名称默认为主机名。不能自动将其恢复为主机名,但可以手动设置。

    rhc_insights:
      remediation: present

系统是否配置为运行Insights补救;有效值为present(默认,确保补救),和absent

请注意,Insights补救仅在RHEL 8.4或更高版本上受支持,因为所需的包仅在该版本开始提供;在旧版本中,此参数无效。

    rhc_insights:
      tags: {}

要添加到基于主机的清单(HBI)中的系统记录的标签字典;通常用于系统的分组和标记,并用于在清单中搜索系统。

该变量的可能值:

  • null或空值(例如:{}):不更改标签文件内容
  • {state: absent}:所有标签都被移除(通过移除标签文件)
  • 任何其他值:创建指定标签的文件

因为标签是用于系统标记的任意值,所以没有固定格式。在指定的字典中,键是字符串,值可以是任何数据类型(字符串、数字、列表、字典等)。

insights-client文档中的标签示例:

rhc_insights:
  tags:
    group: _组名值_
    location: _位置名值_
    description:
      - RHEL8
      - SAP
    key 4: value
    rhc_proxy: {}

用于连接的代理服务器的详细信息:

rhc_proxy:
  hostname: "代理主机名"
  scheme: http
  port: 4321
  username: "代理用户名"
  password: "代理密码"
  • hostname是代理服务器的主机名
  • scheme是用于代理服务器的协议,通常为"http"或"https",默认为"http"
  • port是要连接到代理服务器的端口
  • username是用于在代理服务器上进行身份验证的用户名;如果代理服务器不需要身份验证,可以不指定
  • password是用于在代理服务器上进行身份验证的密码;如果代理服务器不需要身份验证,可以不指定

使用{"state":"absent"}将所有代理配置重置为空(实际上禁用代理服务器)。

注意:用于代理服务器身份验证的变量被视为机密,因此应进行安全保护。我们建议使用Ansible Vault作为它们的来源。

    rhc_environments: []

在连接系统时,要注册到的环境列表。

注意

  • 只有在系统处于未连接状态时才能工作 -- 它无法更改已连接系统的环境
  • 这需要在注册服务器上启用环境;在Red Hat Satellite或Katello中,此功能称为“内容视图”

示例剧本

确保连接到Red Hat,包括Insights,使用用户名和密码进行身份验证:

- name: 注册系统
  hosts: all
  vars:
    rhc_auth:
      login:
        username: "你的用户名"
        password: !vault |
          $ANSIBLE_VAULT;1.2;AES256;dev
          ....
  roles:
    - linux-system-roles.rhc

确保某些RHEL 9仓库已启用,另一个未启用:

- name: 确保RHEL 9仓库已启用
  hosts: all
  vars:
    rhc_repositories:
      - {name: "rhel-9-for-x86_64-baseos-rpms", state: enabled}
      - {name: "rhel-9-for-x86_64-appstream-rpms", state: enabled}
      - {name: "codeready-builder-for-rhel-9-x86_64-rpms", state: disabled}
  roles:
    - linux-system-roles.rhc

确保RHEL 8系统锁定在RHEL 8.6:

- name: 确保系统锁定在RHEL 8.6
  hosts: all
  vars:
    rhc_release: 8.6
  roles:
    - linux-system-roles.rhc

确保系统连接到Insights,而没有自动更新和补救等可选功能:

- name: 确保系统连接到Insights
  hosts: all
  vars:
    rhc_insights:
      autoupdate: false
      remediation: absent
  roles:
    - linux-system-roles.rhc

许可证

MIT

关于项目

Configure connectivity of systems to Red Hat

安装
ansible-galaxy install linux-system-roles.rhc
许可证
mit
下载
5k