linux-system-roles.rhc
rhc
RHELシステムをRed Hatに接続するためのAnsibleロールです。
要件
このロールは、標準のRHELリポジトリから入手可能なsubscription-managerを必要とし、通常RHELにデフォルトでインストールされています。他のディストリビューションでは、まだインストールされていない場合はインストールされます。
また、このロールは、Insightsサポートが有効になっている場合に必要なinsights-clientも必要です(デフォルトで有効)。
さらに、Insightsの修復が有効になっている場合に必要なrhcも必要です(デフォルトで有効)。
コレクション要件
このロールは外部コレクションのモジュールを必要とします。次のコマンドを使ってインストールしてください:
ansible-galaxy collection install -vv -r meta/collection-requirements.yml
ロール変数
rhc_state: present
システムがRed Hatに接続されているかどうかを指定します。有効な値はpresent
(接続を保証するためのデフォルト)、absent
、reconnect
です。
reconnect
を使用する場合、システムがすでに接続されていた場合、まず切断されるため、ロールは常に"changed"ステータスを報告します。
rhc_organization: "your-organization"
ユーザーの組織です。接続する際には、次のいずれかの条件があるときに指定する必要があります:
- ユーザーが複数の組織に所属している
- アクティベーションキーを使用している場合(下記の
rhc_auth
参照)
rhc_auth: {}
システムに接続するために使用する認証方法です。システムが接続する必要がある場合には指定する必要があります(例:以前に接続されていなかった場合)。認証方法は複数ありますが、一度に1つのみ指定できます。
注意:認証に使用される変数は秘密と見なされるため、安全に管理する必要があります。Ansible Vaultを使用することをお勧めします。以下の参照は、利用可能なキーとその用途を説明します。
ユーザー名とパスワードを使用して認証する場合、次の必須キーを使用してlogin
辞書を指定します:
rhc_auth:
login:
username: "your-username"
password: "your-password"
必要に応じてrhc_organization
を使用します。
アクティベーションキーを使用して認証する場合、次の必須キーを使用してactivation_keys
辞書を指定し、rhc_organization
と一緒に指定します:
rhc_auth:
activation_keys:
keys: ["key-1", ...]
rhc_organization: "your-organization"
rhc_server: {}
接続する登録サーバーの詳細です。以下のオプションのキーを含むことができます:
rhc_server:
hostname: "hostname"
port: 443
prefix: "server-prefix"
insecure: false
hostname
はサーバーのホスト名ですport
はサーバーに接続するためのポートですprefix
はサーバーへのAPI呼び出しのプレフィックス(/
で始まる)ですinsecure
はサーバーのSSL証明書の検証を無効にするかどうかを指定します
rhc_baseurl: ""
サブスクリプションサーバーからコンテンツを受信するための基本URLです。
rhc_repositories: []
システムで有効または無効にするリポジトリのリストです。それぞれの項目は、次の2つのキーを含む辞書です:
name
はリポジトリの名前で、このキーは必須ですstate
はシステム内のそのリポジトリの状態で、enabled
またはdisabled
です。このキーはオプションで、指定しない場合はenabled
となります
rhc_repositories:
- {name: "repository-1", state: enabled}
- {name: "repository-2", state: disabled}
rhc_release: "release"
システムに対して設定するリリースです。通常、ある特定のRHELのマイナーバージョンにロックするために使用されます。
システムに設定されているリリースを実際に解除するには、{"state":"absent"}
を使用します(""
ではありません)。
rhc_insights:
state: present
システムがInsightsに接続されているかどうかを指定します。有効な値はpresent
(接続を保証するためのデフォルト)、absent
です。
rhc_insights:
autoupdate: true
システムが動的構成を自動的に更新するかどうかです。デフォルトで有効です。
rhc_insights:
ansible_host: "example-host"
ホストベースインベントリ(HBI)でのシステムレコード用にカスタム値でansibleホスト名を設定します。このホスト名は修復によるプレイブックで使用されます。デフォルトではnull
であり、指定しない場合はシステムホスト名が使用されます。
この変数の可能な値:
null
または空の文字列:ansibleホスト名は変更されません。{state: absent}
:ansibleホスト名はinsights-clientの設定ファイルから解除され、HBIはシステムホスト名を使用するように更新されます。- その他の任意の文字列:ansibleホスト名はHBIで変更されます。
rhc_insights:
display_name: "Example Host"
ホストベースインベントリ(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: _group-name-value_
location: _location-name-value_
description:
- RHEL8
- SAP
key 4: value
rhc_proxy: {}
接続に使用するプロキシサーバーの詳細です:
rhc_proxy:
hostname: "proxy-hostname"
scheme: http
port: 4321
username: "proxy-username"
password: "proxy-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: "your-username"
password: !vault |
$ANSIBLE_VAULT;1.2;AES256;dev
....
roles:
- linux-system-roles.rhc
特定のRHEL 9リポジトリが有効で、別の1つが無効であることを確認します:
- 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