4.5. Ansible のワンタイムパスワード方式を使用して IdM クライアントをインストールする
Identity Management (IdM) で新しいホストのワンタイムパスワード (OTP) を生成し、それを使用してシステムを IdM ドメインに登録できます。この手順では、別の IdM ホストで IdM クライアントの OTP を生成した後、Ansible を使用して IdM クライアントをインストールする方法について説明します。
この IdM クライアントのインストール方法は、異なる権限を持つ次の 2 人のシステム管理者が組織内に存在する場合に便利です。
- IdM 管理者の認証情報を持つ管理者
-
必要な Ansible 認証情報 (IdM クライアントになるホストへの
root
アクセス権を含む) を持つ別の管理者
IdM 管理者は、手順の前半部分を実行し、OTP パスワードを生成します。Ansible 管理者は、手順の残りの部分を実行し、OTP を使用して IdM クライアントをインストールします。
前提条件
-
IdM
admin
認証情報、または少なくともHost Enrollment
権限と、IdM に DNS レコードを追加する権限を持っている。 - IdM クライアントをインストールできるように、Ansible マネージドノードでユーザーエスカレーション方法を設定した。
- Ansible コントロールノードが RHEL 8.7 以前で実行されている場合、Ansible コントロールノードにパッケージをインストールできる。
次の要件を満たすように Ansible コントロールノードを設定した。
- Ansible バージョン 2.14 以降を使用している。
-
Ansible コントローラーに
ansible-freeipa
パッケージがインストールされている。 - IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル を作成した。
- マネージドノードが、静的 IP アドレスと動作中のパッケージマネージャーを備えた Red Hat Enterprise Linux 9 システムである。
手順
Host Enrollment
権限と DNS レコードを追加する権限を持つロールを持つ IdM ユーザーとして IdM ホストにSSH
接続します。$ ssh admin@server.idm.example.com
新しいクライアントの OTP を生成します。
[admin@server ~]$ ipa host-add client.idm.example.com --ip-address=172.25.250.11 --random -------------------------------------------------- Added host "client.idm.example.com" -------------------------------------------------- Host name: client.idm.example.com Random password: W5YpARl=7M.n Password: True Keytab: False Managed by: server.idm.example.com
--ip-address=<your_host_ip_address> オプションは、指定した IP アドレスを持つホストを IdM DNS に追加します。
IdM ホストを終了します。
$ exit logout Connection to server.idm.example.com closed.
Ansible コントローラーで、ランダムパスワードを含めるようにインベントリーファイルを更新します。
[...] [ipaclients] client.idm.example.com [ipaclients:vars] ipaclient_domain=idm.example.com ipaclient_otp=W5YpARl=7M.n [...]
Ansible コントローラーが RHEL 9.1 以前を実行している場合は、
krb5-workstation
パッケージによって提供されるkinit
ユーティリティーをインストールします。$ sudo dnf install krb5-workstation
Playbook を実行してクライアントをインストールします。
$ ansible-playbook -i inventory install-client.yml