第8章 Ansible Playbook を使用したユーザーアカウントの管理
Ansible Playbook を使用して、Identity Management (IdM) ユーザーアカウントを作成、変更、削除し、ドメイン全体でユーザーライフサイクル管理を自動化します。IdM は、Stage、Active、Preserved の 3 つのユーザーアカウント状態をサポートしています。
FreeIPA Ansible コレクション内の変数とサンプル Playbook の詳細は、コントロールノードの /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/README-user.md ファイルと /usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/user ディレクトリーを参照してください。
8.1. Ansible Playbook を使用して単一の IdM ユーザーを存在させる リンクのコピーリンクがクリップボードにコピーされました!
Ansible Playbook を使用して、ドメイン内のユーザープロビジョニングを自動化し、IdM ユーザーアカウントを作成するか、存在するかどうかを確認します。
前提条件
コントロールノード:
- Ansible バージョン 2.15 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル が作成されている (この例の場合)。
-
secret.yml Ansible vault に
ipaadmin_passwordが保存されており、secret.yml ファイルを保護するパスワードを格納しているファイルにアクセスできる (この例の場合)。
-
ターゲットノード (
freeipa.ansible_freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。
手順
IdM に存在させるユーザーのデータを指定して Ansible Playbook ファイルを作成します。このステップを簡略化するために、
/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/playbooks/user/add-user.ymlファイル内の例をコピーして変更できます。たとえば、idm_user という名前のユーザーを作成し、Password123 をユーザーパスワードとして追加するには、次のコマンドを実行します。--- - name: Playbook to handle users hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Create user idm_user freeipa.ansible_freeipa.ipauser: ipaadmin_password: "{{ ipaadmin_password }}" name: idm_user first: Alice last: Acme uid: 1000111 gid: 10011 phone: "+555123457" email: idm_user@acme.com passwordexpiration: "2023-01-19 23:59:59" password: "Password123" update_password: on_createユーザーを追加するには、以下のオプションを使用する必要があります。
- name: ログイン名
- first: 名前 (名) の文字列
- last: 名前 (姓) の文字列
利用可能なユーザーオプションの完全なリストは、
/usr/share/ansible/collections/ansible_collections/freeipa/ansible_freeipa/README-user.mdマークダウンファイルを参照してください。注記update_password: on_createオプションを使用する場合には、Ansible はユーザー作成時にのみユーザーパスワードを作成します。パスワードを指定してユーザーが作成されている場合には、Ansible では新しいパスワードは生成されません。Playbook を実行します。
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/add-IdM-user.yml
検証
ipa user-showコマンドを使用して、新しいユーザーアカウントが IdM に存在するかどうかを確認できます。ipaserverに admin としてログインします。$ ssh admin@server.idm.example.com Password: [admin@server /]$admin の Kerberos チケットを要求します。
$ kinit admin Password for admin@IDM.EXAMPLE.COM:idm_user に関する情報を要求します。
$ ipa user-show idm_user User login: idm_user First name: Alice Last name: Acme ....
idm_user という名前のユーザーが IdM に存在しています。