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ロールです。

要件

このロールは、標準の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(接続を保証するためのデフォルト)、absentreconnectです。

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

プロジェクトについて

Configure connectivity of systems to Red Hat

インストール
ansible-galaxy install linux-system-roles.rhc
ライセンス
mit
ダウンロード
5k