6.3. Ansible Playbook での IdM ユーザーのデフォルトシェルの設定

シェルは、コマンドを受け入れ、解釈するプログラムです。bashshkshzshfish などの Red Hat Enterprise Linux (RHEL) では、いくつかのシェルが利用できます。Bash (または /bin/bash) は、ほとんどの Linux システムで一般的なシェルです。通常は、RHEL のユーザーアカウントのデフォルトシェルです。

以下の手順では、Ansible Playbook を使用して、IdM ユーザーのデフォルトシェルとして別のシェルである sh を設定する方法を説明します。

前提条件

  • IdM 管理者パスワードが分かっている。
  • Ansible コントローラーに ansible-freeipa パッケージがインストールされている。

手順

  1. 必要に応じて、Ansible Playbook retrieve-config.yml を使用して、IdM ユーザーの現在のシェルを特定します。詳細は、「Ansible Playbook での IdM 設定の取得」を参照してください。
  2. inventory.file などのインベントリーファイルを作成し、そのファイルに ipaserver を定義します。

    [ipaserver]
    server.idm.example.com
  3. Ansible Playbook /usr/share/doc/ansible-freeipa/playbooks/config/ensure-config-options-are-set.yml ファイルを開いて編集します。

    ---
    - name: Playbook to ensure some config options are set
      hosts: ipaserver
      become: true
    
      tasks:
      # Set defaultlogin and maxusername
      - ipaconfig:
          ipaadmin_password: Secret123
          defaultshell: /bin/bash
          maxusername: 64
  4. 以下を変更してファイルを調整します。

    • ipaadmin_password 変数で設定した IdM 管理者のパスワード
    • defaultshell 変数で設定されている IdM ユーザーのデフォルトのシェルが /bin/sh に設定されます。
  5. ファイルを保存します。
  6. Ansible Playbook を実行します。Playbook ファイルとインベントリーファイルを指定します。

    $ ansible-playbook -v -i path_to_inventory_directory/inventory.file /usr/share/doc/ansible-freeipa/playbooks/config/ensure-config-options-are-set.yml

検証手順

IdM で新しいセッションを開始すると、デフォルトのユーザーシェルが変更されていることを確認できます。

  1. IdM 管理者として ipaserver にログインします。

    $ ssh admin@server.idm.example.com
    Password:
    [admin@server /]$
  2. 現在のシェルを表示します。

    [admin@server /]$ echo "$SHELL"
    /bin/sh

    ログインしているユーザーが sh シェルを使用している。

関連情報

  • /usr/share/doc/ansible-freeipa/ ディレクトリーにある Markdown ファイル README-config.md に、グローバルな IdM 設定を設定するための Ansible Playbook サンプルと、可能な変数の一覧が表示されます。
  • /usr/share/doc/ansible-freeipa/playbooks/config ディレクトリーに、さまざまな IdM 設定関連操作用の Ansible Playbook のサンプルを確認できます。