第5章 Ansible Playbook を使用して IdM を管理する環境の準備
Identity Management (IdM) を管理するシステム管理者は、Red Hat Ansible Engine を使用する際に以下を行うことが推奨されます。
- ホームディレクトリーに Ansible Playbook 専用のサブディレクトリー (例: ~/MyPlaybooks) を作成します。
-
/usr/share/doc/ansible-freeipa/*と/usr/share/doc/rhel-system-roles/*ディレクトリーおよびサブディレクトリーから ~/MyPlaybooks ディレクトリーにサンプル Ansible Playbook をコピーして調整します。 - ~/MyPlaybooks ディレクトリーにインベントリーファイルを追加します。
このプラクティスを使用すると、すべての Playbook を 1 か所で見つけることができます。
マネージドノードで root 権限を呼び出さずに ansible-freeipa Playbook を実行できます。例外には、ipaserver、ipareplica、ipaclient、ipasmartcard_server、ipasmartcard_client、および ipabackup ansible-freeipa ロールを使用する Playbook が含まれます。これらのロールには、ディレクトリーおよび dnf ソフトウェアパッケージマネージャーへの特権アクセスが必要です。
Red Hat Enterprise Linux IdM ドキュメントの Playbook は、次の セキュリティー設定 を前提としています。
-
IdM
adminは、管理ノードのリモート Ansible ユーザーです。 -
Ansible vault に暗号化された IdM
adminパスワードを保存します。 - Ansible vault を保護するパスワードをパスワードファイルに配置しました。
- ローカルの ansible ユーザーを除く全員に対して、vault パスワードファイルへのアクセスをブロックします。
- vault パスワードファイルを定期的に削除して再作成します。
別のセキュリティー設定 も検討してください。
5.1. Ansible Playbook を使用して IdM を管理するためのコントロールノードと管理ノードの準備 リンクのコピーリンクがクリップボードにコピーされました!
~/MyPlaybooks ディレクトリーを作成し、それを使用して Ansible Playbook を保存および実行できるように設定するには、次の手順に従います。
前提条件
- マネージドノードに IdM サーバー (server.idm.example.com および replica.idm.example.com) をインストールした。
- DNS およびネットワークを設定し、コントロールノードから直接マネージドノード (server.idm.example.com および replica.idm.example.com) にログインすることができる。
-
IdM
adminのパスワードを把握している。
手順
~/MyPlaybooks/ ディレクトリーに移動します。
cd ~/MyPlaybooks
$ cd ~/MyPlaybooksCopy to Clipboard Copied! Toggle word wrap Toggle overflow ~/MyPlaybooks/ansible.cfg ファイルを以下の内容で作成します。
[defaults] inventory = /home/your_username/MyPlaybooks/inventory remote_user = admin
[defaults] inventory = /home/your_username/MyPlaybooks/inventory remote_user = adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow ~/MyPlaybooks/inventory ファイルを以下の内容で作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この設定は、これらの場所にあるホストの 2 つのホストグループ (eu と us) を定義します。さらに、この設定は、eu および us グループのすべてのホストを含む ipaserver ホストグループを定義します。
オプション: SSH 公開鍵および秘密鍵を作成します。テスト環境でのアクセスを簡素化するには、秘密鍵にパスワードを設定しないでください。
ssh-keygen
$ ssh-keygenCopy to Clipboard Copied! Toggle word wrap Toggle overflow 各マネージドノードの IdM
adminアカウントに SSH 公開鍵をコピーします。ssh-copy-id admin@server.idm.example.com ssh-copy-id admin@replica.idm.example.com
$ ssh-copy-id admin@server.idm.example.com $ ssh-copy-id admin@replica.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow これらのコマンドでは、IdM
管理者パスワードを入力します。Vault パスワードを含む password_file ファイルを作成します。
redhat
redhatCopy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを変更する権限を変更します。
chmod 0600 password_file
$ chmod 0600 password_fileCopy to Clipboard Copied! Toggle word wrap Toggle overflow IdM の
adminパスワードを保存する secret.yml Ansible Vault を作成します。Vault パスワードを保存するように password_file を設定します。
ansible-vault create --vault-password-file=password_file secret.yml
$ ansible-vault create --vault-password-file=password_file secret.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow プロンプトが表示されたら、secret.yml ファイルの内容を入力します。
ipaadmin_password: Secret123
ipaadmin_password: Secret123Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Playbook で暗号化された ipaadmin_password を使用するには、vars_file ディレクティブを使用する必要があります。たとえば、IdM ユーザーを削除する単純な Playbook は次のようになります。
Playbook を実行するときに、--vault-password-file=password_file オプションを追加して、Ansible に Vault パスワードを使用して ipaadmin_password を復号するように指示します。以下に例を示します。
ansible-playbook -i inventory --vault-password-file=password_file del-user.yml
ansible-playbook -i inventory --vault-password-file=password_file del-user.yml
セキュリティー上の理由から、各セッションの終了時に Vault パスワードファイルを削除し、新しいセッションの開始時に手順 6 - 8 を繰り返してください。