4.4. Ansible Playbook を使用して JSON ファイルからの複数の IdM ユーザーが存在する状態にする
次の手順では、Ansible Playbook を使用して IdM に複数のユーザーが存在する状態にする方法を説明します。ユーザーは JSON ファイルに保存されます。
前提条件
コントロールノード:
- Ansible バージョン 2.14 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル を作成している (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。
手順
inventory.fileなどのインベントリーファイルを作成して、そのファイルにipaserverを定義します。[ipaserver] server.idm.example.com-
必要なタスクが含まれる Ansible Playbook ファイルを作成します。存在させるユーザーのデータが指定された
JSONファイルを参照します。この手順を簡略化するには、/usr/share/doc/ansible-freeipa/README-user.mdファイル内の例をコピーして変更します。
---
- name: Ensure users' presence
hosts: ipaserver
vars_files:
- /home/user_name/MyPlaybooks/secret.yml
tasks:
- name: Include users_present.json
include_vars:
file: users_present.json
- name: Users present
ipauser:
ipaadmin_password: "{{ ipaadmin_password }}"
users: "{{ users }}"
users.jsonファイルを作成し、IdM ユーザーを追加します。この手順を簡略化するには、/usr/share/doc/ansible-freeipa/README-user.mdファイル内の例をコピーして変更します。たとえば、ユーザー idm_user_1、idm_user_2、idm_user_3 を作成し、idm_user_1 のパスワードを Password123 として追加します。{ "users": [ { "name": "idm_user_1", "first": "First 1", "last": "Last 1", "password": "Password123" }, { "name": "idm_user_2", "first": "First 2", "last": "Last 2" }, { "name": "idm_user_3", "first": "First 3", "last": "Last 3" } ] }Ansible Playbook を実行します。Playbook ファイル、secret.yml ファイルを保護するパスワードを格納するファイル、およびインベントリーファイルを指定します。
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file path_to_playbooks_directory/ensure-users-present-jsonfile.yml
検証
ipa user-showコマンドを使用して、ユーザーアカウントが IdM に存在するかどうかを確認できます。管理者として
ipaserverにログインします。$ ssh administrator@server.idm.example.com Password: [admin@server /]$idm_user_1 に関する情報を表示します。
$ ipa user-show idm_user_1 User login: idm_user_1 First name: Alice Last name: Acme Password: True ....
idm_user_1 という名前のユーザーが IdM に存在しています。