community.general.redhat_subscription 模块 – 使用 subscription-manager 管理 RHSM 的注册和订阅

注意

此模块是 community.general 集合 (版本 10.1.0) 的一部分。

如果您使用的是 ansible 软件包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general。您需要其他要求才能使用此模块,请参阅 要求 获取详细信息。

要在剧本中使用它,请指定:community.general.redhat_subscription

概要

  • 使用 subscription-manager 命令管理 Red Hat Subscription Management 授权平台的注册和订阅,如果可能,则使用 D-Bus 注册。

要求

执行此模块的主机需要以下要求。

  • subscription-manager

  • 可选的 dbus Python 库;这通常包含在操作系统中,因为它被 subscription-manager 使用。

参数

参数

注释

activationkey

字符串

提供用于注册的激活密钥

auto_attach

布尔值

注册成功后,自动使用可用的订阅

请注意,别名 autosubscribe 已在 community.general 9.0.0 中移除。

选项

  • false

  • true

consumer_id

字符串

引用现有的消费者 ID 以恢复使用此系统的先前注册。如果系统的身份证书丢失或损坏,此选项允许它恢复使用其先前身份和订阅。默认是不指定消费者 ID,因此会创建一个新的 ID。

consumer_name

字符串

要注册的系统名称,默认为主机名

consumer_type

字符串

要注册的单元类型,默认为 system

environment

字符串

在目标组织中注册特定环境。与 Red Hat Satellite 或 Katello 一起使用

force_register

布尔值

即使系统已注册,也要注册系统

选项

  • false ← (默认)

  • true

org_id

字符串

与 activationkey 一起使用的组织 ID

password

字符串

access.redhat.com 或 Red Hat Satellite 或 Katello 密码

pool_ids

列表 / 元素=任意

指定要使用的订阅池 ID。池 ID 可以指定为 字符串 - 只有池 ID(例如 0123456789abcdef0123456789abcdef),或者作为 字典,其中池 ID 为键,数量为值(例如 0123456789abcdef0123456789abcdef: 2)。如果提供了数量,则它用于从池中使用多个授权(池必须支持此功能)。

默认值: []

release

字符串

设置发行版版本

rhsm_baseurl

字符串

指定 CDN 基本 URL

rhsm_repo_ca_cert

字符串

指定 CDN 的 CA 证书的替代位置

server_hostname

字符串

指定替代的 Red Hat Subscription Management 或 Red Hat Satellite 或 Katello 服务器。

server_insecure

字符串

连接到 server_hostname 时启用或禁用 https 服务器证书验证。

server_port

字符串

在 community.general 3.3.0 中添加

注册到 Red Hat Subscription Management 或 Red Hat Satellite 或 Katello 服务器时指定端口。

server_prefix

字符串

在 community.general 3.3.0 中添加

注册到 Red Hat Subscription Management 或 Red Hat Satellite 或 Katello 服务器时指定前缀。

server_proxy_hostname

字符串

指定 HTTP 代理主机名。

server_proxy_password

字符串

为使用基本身份验证的 HTTP 代理指定密码

server_proxy_port

字符串

指定 HTTP 代理端口。

server_proxy_scheme

字符串

在 community.general 6.2.0 中添加

指定 HTTP 代理方案,例如 httphttps

server_proxy_user

字符串

为使用基本身份验证的 HTTP 代理指定用户

state

字符串

是否注册和订阅 (present),或注销 (absent) 系统

选项

  • "present" ← (默认)

  • "absent"

syspurpose

字典

在文件/etc/rhsm/syspurpose/syspurpose.json中设置syspurpose属性,并将这些属性与RHSM服务器同步。Syspurpose属性有助于系统自动附加最合适的订阅。如果syspurpose.json文件已包含某些属性,则新属性会覆盖现有属性。如果新属性列表中未列出某个属性,则该现有属性将从syspurpose.json文件中删除。未知属性将被忽略。

附加组件

列表 / 元素=字符串

Syspurpose属性addons

角色

字符串

Syspurpose属性role

服务级别协议

字符串

Syspurpose属性service_level_agreement

同步

布尔值

如果此选项为true,则syspurpose属性将立即与RHSM服务器同步。如果此选项为false,则syspurpose属性将由rhsmcertd守护进程与RHSM服务器同步。

选项

  • false ← (默认)

  • true

用途

字符串

Syspurpose属性usage

令牌

字符串

在community.general 6.3.0中添加

sso.redhat.com API访问令牌。

用户名

字符串

access.redhat.com或Red Hat Satellite或Katello用户名

属性

属性

支持

描述

check_mode

支持:不支持

可以在check_mode下运行,并在不修改目标的情况下返回更改状态预测。

diff_mode

支持:不支持

在diff模式下,将返回有关已更改内容(或可能需要在check_mode中更改的内容)的详细信息。

备注

注意

  • 从community.general 6.5.0开始,该模块尝试使用D-Bus rhsm服务(subscription-manager的一部分)进行注册:这样做是为了安全地将凭据(用户名、密码、激活密钥)传递给rhsmsubscription-manager本身仅作为命令行参数的参数获取凭据,这**不**安全,因为可以通过检查系统上的进程列表轻松窃取它们。由于rhsm的D-Bus接口的限制,当尝试使用token注册,或指定environment,或系统较旧(通常是早于7.4的RHEL 7、RHEL 6和更旧版本)时,模块**不会**使用D-Bus进行注册。

  • 要注册系统,subscription-manager需要用户名和密码,或激活密钥和组织ID。

  • 从2.5版本开始,server_hostnameserver_insecurerhsm_baseurlserver_proxy_hostnameserver_proxy_portserver_proxy_userserver_proxy_password的值不再从/etc/rhsm/rhsm.conf配置文件中获取,默认为null

  • 只能以root用户身份与subscription-manager交互,因此需要root权限才能成功运行此模块。

  • 从community.general 6.5.0开始,只有在系统未注册或指定force_register时才需要凭据(即usernamepasswordactivationkeytoken);这使得可以使用该模块来调整已注册的系统,例如向其附加池(使用pool_ids)和修改syspurpose属性(使用syspurpose)。

示例

- name: Register as user (joe_user) with password (somepass) and auto-subscribe to available content.
  community.general.redhat_subscription:
    state: present
    username: joe_user
    password: somepass
    auto_attach: true

- name: Same as above but subscribe to a specific pool by ID.
  community.general.redhat_subscription:
    state: present
    username: joe_user
    password: somepass
    pool_ids: 0123456789abcdef0123456789abcdef

- name: Register and subscribe to multiple pools.
  community.general.redhat_subscription:
    state: present
    username: joe_user
    password: somepass
    pool_ids:
      - 0123456789abcdef0123456789abcdef
      - 1123456789abcdef0123456789abcdef

- name: Same as above but consume multiple entitlements.
  community.general.redhat_subscription:
    state: present
    username: joe_user
    password: somepass
    pool_ids:
      - 0123456789abcdef0123456789abcdef: 2
      - 1123456789abcdef0123456789abcdef: 4

- name: Register and pull existing system data.
  community.general.redhat_subscription:
    state: present
    username: joe_user
    password: somepass
    consumer_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

- name: Register as user credentials into given environment (against Red Hat Satellite or Katello), and auto-subscribe.
  community.general.redhat_subscription:
    state: present
    username: joe_user
    password: somepass
    environment: Library
    auto_attach: true

- name: Register as user (joe_user) with password (somepass) and a specific release
  community.general.redhat_subscription:
    state: present
    username: joe_user
    password: somepass
    release: 7.4

- name: Register as user (joe_user) with password (somepass), set syspurpose attributes and synchronize them with server
  community.general.redhat_subscription:
    state: present
    username: joe_user
    password: somepass
    auto_attach: true
    syspurpose:
      usage: "Production"
      role: "Red Hat Enterprise Server"
      service_level_agreement: "Premium"
      addons:
        - addon1
        - addon2
      sync: true

返回值

常用返回值已在此处记录,以下是此模块特有的字段

描述

subscribed_pool_ids

字典

系统现在已订阅的池ID列表

已返回:成功

示例:{"8a85f9815ab905d3015ab928c7005de4": "1"}

作者

  • Barnaby Court (@barnabycourt)