26.8. Ansible Playbook を使用してサービスの Kerberos プリンシパルのエイリアスを存在させる手順
シナリオによっては、IdM ユーザー、ホストまたはサービスが Kerberos アプリケーションに対して Kerberos プリンシパルエイリアスを使用して認証できるように IdM 管理者が設定すると便利です。次のようなシナリオになります。
- ユーザー名の変更後に、ユーザーが以前のユーザー名と新しいユーザー名の両方でシステムにログインできるようにする。
- IdM Kerberos レルムがメールドメインと異なる場合でも、ユーザーはメールアドレスを使用してログインする必要がある。
以下の手順に従って、client.idm.example.com で実行される HTTP サービスの HTTP/mycompany.idm.example.com のプリンシパルエイリアスを作成します。
前提条件
コントロールノードでは、
- Ansible バージョン 2.14 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル を作成している (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - ホストに HTTP サービスを設定 している。
- HTTP サービスを IdM に登録 している。
- HTTP を設定しているホストが IdM クライアントである。
手順
inventory.fileなどのインベントリーファイルを作成します。touch inventory.file
$ touch inventory.fileCopy to Clipboard Copied! Toggle word wrap Toggle overflow inventory.fileを開き、[ipaserver]セクションに、設定する IdM サーバーを定義します。たとえば、Ansible に対して server.idm.example.com を設定するように指示するには、次のコマンドを実行します。[ipaserver] server.idm.example.com
[ipaserver] server.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook ファイル (
/usr/share/doc/ansible-freeipa/playbooks/service/service-member-principal-present.yml) のコピーを作成します。以下に例を示します。cp /usr/share/doc/ansible-freeipa/playbooks/service/service-member-principal-present.yml /usr/share/doc/ansible-freeipa/playbooks/service/service-member-principal-present-copy.yml
$ cp /usr/share/doc/ansible-freeipa/playbooks/service/service-member-principal-present.yml /usr/share/doc/ansible-freeipa/playbooks/service/service-member-principal-present-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Ansible Playbook ファイル (
/usr/share/doc/ansible-freeipa/playbooks/service/service-member-principal-present-copy.yml) を開きます。 以下を変更してファイルを調整します。
-
ipaadmin_password変数で指定した IdM 管理者パスワード。 -
name変数で指定したサービス名。これは、サービスの標準プリンシパル名です。現在の例では HTTP/client.idm.example.com です。 -
principal変数で指定した Kerberos プリンシパルエイリアス。これは、name変数で定義したサービスに追加するエイリアスです。現在の例では、host/mycompany.idm.example.com です。 tasksセクションのname変数で指定されているタスク名。現在の例に合わせて調節すると、コピーされたファイルは以下のようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
- ファイルを保存します。
Ansible Playbook を実行します。Playbook ファイル、secret.yml ファイルを保護するパスワードを格納するファイル、およびインベントリーファイルを指定します。
ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file /usr/share/doc/ansible-freeipa/playbooks/service/service-member-principal-present-copy.yml
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file /usr/share/doc/ansible-freeipa/playbooks/service/service-member-principal-present-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Playbook を実行すると、到達できないタスクが 0 件、失敗したタスクが 0 件になる場合には、HTTP/client.idm.example.com サービスの host/mycompany.idm.example.com Kerberos プリンシパルが正常に作成されています。