第33章 Ansible Playbook で Identity Management クライアントのインストール
Ansible を使用して、システムを Identity Management (IdM) クライアントとして設定する方法を説明します。システムを IdM クライアントとして設定すると、IdM ドメインに登録され、システムがドメインの IdM サーバーで IdM サービスを使用できるようになります。
デプロイメントは、Ansible ロール ipaclient
により管理されます。デフォルトでは、ロールは自動検出モードを使用して、IdM サーバー、ドメイン、およびその他の設定を特定します。ロールは、Ansible Playbook がインベントリーファイルなどに指定した設定を使用するように変更できます。
前提条件
- Ansible コントロールノードに ansible-freeipa パッケージがインストールされている。
- Ansible バージョン 2.15 以降を使用している。
- Ansible と IdM の一般的な概念を理解している。
33.1. 自動検出クライアントインストールモードでインベントリーファイルのパラメーターの設定
Ansible Playbook を使用して Identity Management (IdM) クライアントをインストールするには、インベントリーファイル (例: inventory
) でターゲットホストのパラメーターを設定します。
- ホストに関する情報
- タスクの承認
インベントリーファイルは、所有するインベントリープラグインに応じて、多数ある形式のいずれかになります。INI-like
形式は Ansible のデフォルトで、以下の例で使用されています。
RHEL でグラフィカルユーザーインターフェイスでスマートカードを使用するには、Ansible Playbook に ipaclient_mkhomedir
変数を含めるようにします。
手順
-
inventory
ファイルを開いて編集します。 IdM クライアントになるホストの完全修飾ホスト名 (FQDN) を指定します。完全修飾ドメイン名は、有効な DNS 名である必要があります。
-
数字、アルファベット、およびハイフン (
-
) のみを使用できる。たとえば、アンダーラインは使用できないため、DNS の障害が発生する原因となる可能性があります。 - ホスト名がすべて小文字である。大文字は使用できません。
SRV レコードが IdM DNS ゾーンで正しく設定されている場合は、スクリプトが自動的に必要な値をすべて検出します。
クライアントの FQDN のみが定義されている単純なインベントリーホストファイルの例
[ipaclients] client.idm.example.com [...]
-
数字、アルファベット、およびハイフン (
クライアントを登録するための認証情報を指定します。以下の認証方法を使用できます。
クライアントを登録する権限のあるユーザーのパスワード。以下はデフォルトのオプションになります。
Red Hat は、Ansible Vault を使用してパスワードを保存し、Playbook ファイル (
install-client.yml
など) から Vault ファイルを直接参照することを推奨します。Ansible Vault ファイルのインベントリーファイルおよびパスワードのプリンシパルを使用した Playbook ファイルの例
- name: Playbook to configure IPA clients with username/password hosts: ipaclients become: true vars_files: - playbook_sensitive_data.yml roles: - role: ipaclient state: present
あまり安全ではありませんが、
inventory/hosts
ファイルの[ipaclients:vars]
セクションにipaadmin_password
オプションを使用して、admin
の認証情報を提供します。また、別の認証ユーザーを指定するには、ユーザー名にipaadmin_principal
オプション、パスワードにipaadmin_password
オプションを使用します。inventory/hosts
インベントリーファイルと、Playbook ファイルinstall-client.yml
は以下のようになります。インベントリーホストファイルの例
[...] [ipaclients:vars] ipaadmin_principal=my_admin ipaadmin_password=Secret123
インベントリーファイルのプリンシパルおよびパスワードを使用した Playbook の例
- name: Playbook to unconfigure IPA clients hosts: ipaclients become: true roles: - role: ipaclient state: true
以前登録した クライアントキータブ が利用できる場合は、以下を行います。
このオプションは、システムが Identity Management クライアントとして登録されたことがある場合に使用できます。この認証方法を使用するには、
#ipaclient_keytab
オプションのコメントを解除して、キータブを保存するファイルへのパスを指定します (例:inventory/hosts
の[ipaclient:vars]
セクション)。登録時に生成される ランダムなワンタイムパスワード (OTP)。この認証方法を使用するには、インベントリーファイルで
ipaclient_use_otp=true
オプションを使用します。たとえば、inventory/hosts
ファイルの[ipaclients:vars]
セクションにあるipaclient_use_otp=true
オプションのコメントを解除できます。OTP では、以下のいずれかのオプションも指定する必要があります。-
クライアントを登録する権限のあるユーザーのパスワード (例:
inventory/hosts
ファイルの[ipaclients:vars]
セクションにipaadmin_password
の値を指定)。 -
管理者キータブ (例:
inventory/hosts
の[ipaclients:vars]
セクションにipaadmin_keytab
の値を指定)。
-
クライアントを登録する権限のあるユーザーのパスワード (例:
オプション: クラスターのデプロイを簡素化するために、
ipaclient_configure_dns_resolve
およびipaclient_dns_servers
オプション (使用可能な場合) を使用して DNS リゾルバーを指定します。これは、IdM デプロイメントが統合 DNS を使用している場合に特に便利です。DNS リゾルバーを指定するインベントリーファイルスニペット:
[...] [ipaclients:vars] ipaadmin_password: "{{ ipaadmin_password }}" ipaclient_domain=idm.example.com ipaclient_configure_dns_resolver=true ipaclient_dns_servers=192.168.100.1
注記ipaclient_dns_servers
リストには IP アドレスのみを含める必要があります。ホスト名を含めることはできません。-
RHEL 8.9 以降では、
ipaclient_subid: true
オプションを指定して、IdM ユーザーのサブ ID 範囲を IdM レベルで設定することもできます。
関連情報
-
/usr/share/ansible/roles/ipaclient/README.md
- subID 範囲の手動管理