6.3. Ansible Playbook での IdM ユーザーのデフォルトシェルの設定
シェルとは、コマンドを受け入れて変換するプログラムです。Red Hat Enterprise Linux (RHEL) では、bash、sh、ksh、zsh、fish など、複数のシェルが利用できます。Bash (または /bin/bash) は、ほとんどの Linux システムで一般的なシェルです。通常は、RHEL のユーザーアカウントのデフォルトシェルです。
以下の手順では、Ansible Playbook を使用して、IdM ユーザーのデフォルトシェルとして別のシェルである sh を設定する方法を説明します。
前提条件
コントロールノードでは、
- Ansible バージョン 2.14 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル を作成している (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。
手順
-
必要に応じて、Ansible Playbook
retrieve-config.ymlを使用して、IdM ユーザーの現在のシェルを特定します。詳細は、Ansible Playbook での IdM 設定の取得 を参照してください。 inventory.fileなどのインベントリーファイルを作成して、そのファイルにipaserverを定義します。[ipaserver] server.idm.example.com
[ipaserver] server.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook
/usr/share/doc/ansible-freeipa/playbooks/config/ensure-config-options-are-set.ymlファイルを開いて編集します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下を変更してファイルを調整します。
-
ipaadmin_password変数で設定した IdM 管理者のパスワード -
defaultshell変数で設定されている IdM ユーザーのデフォルトのシェルが/bin/shに設定されます。
-
- ファイルを保存します。
Ansible Playbook を実行します。Playbook ファイル、secret.yml ファイルを保護するパスワードを格納するファイル、およびインベントリーファイルを指定します。
ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file /usr/share/doc/ansible-freeipa/playbooks/config/ensure-config-options-are-set.yml
$ ansible-playbook --vault-password-file=password_file -v -i path_to_inventory_directory/inventory.file /usr/share/doc/ansible-freeipa/playbooks/config/ensure-config-options-are-set.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
IdM で新しいセッションを開始すると、デフォルトのユーザーシェルが変更されていることを確認できます。
IdM 管理者として
ipaserverにログインします。ssh admin@server.idm.example.com Password: [admin@server /]$
$ ssh admin@server.idm.example.com Password: [admin@server /]$Copy to Clipboard Copied! Toggle word wrap Toggle overflow 現在のシェルを表示します。
echo "$SHELL" /bin/sh
[admin@server /]$ echo "$SHELL" /bin/shCopy to Clipboard Copied! Toggle word wrap Toggle overflow ログインしているユーザーが
shシェルを使用している。