37.9. Ansible を使用して、特定のホスト上の IdM ユーザーのログイン名とホームディレクトリーをオーバーライドする
この手順では、idoverrideuser
ansible-freeipa
モジュールを使用して、特定の Identity Management (IdM) ユーザーに関連付けられた POSIX 属性値をオーバーライドする特定の IdM クライアント用の ID ビューを作成します。この手順では、idm_user という名前の IdM ユーザーがログイン名 user_1234 を使用して host1.idm.example.com という名前の IdM クライアントにログインできるようにする ID ビューの例を使用します。さらに、この ID ビューは idm_user のホームディレクトリーを変更します。そのため、host1 へのログイン後、ユーザーのホームディレクトリーが /home/user_1234/ になります。
前提条件
コントロールノードでは、
- Ansible バージョン 2.14 以降を使用している。
-
ansible-freeipa
パッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル を作成している。RHEL 9.4 以降を使用している。
-
secret.yml Ansible vault に
ipaadmin_password
が保存されている。
-
ターゲットノード (
ansible-freeipa
モジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。
手順
次の内容を含む Ansible Playbook ファイル add-idoverrideuser-with-name-and-homedir.yml を作成します。
--- - name: Playbook to manage idoverrideuser hosts: ipaserver become: false gather_facts: false vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure idview_for_host1 is present idview: ipaadmin_password: ”{{ ipaadmin_password }}" name: idview_for_host1 - name: Ensure idview_for_host1 is applied to host1.idm.example.com idview: ipaadmin_password: ”{{ ipaadmin_password }}" name: idview_for_host1 host: host1.idm.example.com action: member - name: Ensure idm_user is present in idview_for_host1 with homedir /home/user_1234 and name user_1234 ipaidoverrideuser: ipaadmin_password: ”{{ ipaadmin_password }}" idview: idview_for_host1 anchor: idm_user name: user_1234 homedir: /home/user_1234
Playbook を実行します。Playbook ファイル、secret.yml ファイルを保護するパスワードを格納するファイル、およびインベントリーファイルを指定します。
$ ansible-playbook --vault-password-file=password_file -v -i <path_to_inventory_directory>/inventory <path_to_playbooks_directory>/add-idoverrideuser-with-name-and-homedir.yml
[オプション]
root
の認証情報を持っている場合は、新しい設定を host1.idm.example.com システムにすぐに適用できます。システムに
root
として SSH 接続します。$ ssh root@host1 Password:
SSSD キャッシュを削除します。
root@host1 ~]# sss_cache -E
SSSD デーモンを再起動します。
root@host1 ~]# systemctl restart sssd
検証
idm_user として host1 に
SSH
接続します。[root@r8server ~]# ssh idm_user@host1.idm.example.com Password: Last login: Sun Jun 21 22:34:25 2020 from 192.168.122.229 [user_1234@host1 ~]$
作業ディレクトリーを出力します。
[user_1234@host1 ~]$ pwd /home/user_1234/
関連情報
-
ansible-freeipa
アップストリームドキュメントの idoverrideuser モジュール