11.11. Ansible を使用してホストを IdM RBAC ロールに所属させるように設定する手順

Identity Management (IdM) でロールベースアクセス制御を管理するシステム管理者は、特定のホストまたはホストグループが特定のロールに関連付けられていることを確認する必要がある場合があります。以下の例では、カスタムの web_administrator ロールが HTTP サービスを実行している client01.idm.example.com の IdM ホストを管理できるようにする方法を説明します。

前提条件

  • IdM 管理者パスワードが分かっている。
  • Ansible コントロールノードに ansible-freeipa パッケージがインストールされている。
  • 設定を行う IdM サーバーの完全修飾ドメイン名 (FQDN) で Ansible インベントリーファイル を作成している。
  • Ansible インベントリーファイルが ~/ <MyPlaybooks>/ ディレクトリーにある。
  • web_administrator ロールが IdM に存在する。
  • client01.idm.example.com ホストが IdM に存在する。

手順

  1. ~/<MyPlaybooks>/ ディレクトリーに移動します。

    $ cd ~/<MyPlaybooks>/
  2. /usr/share/doc/ansible-freeipa/playbooks/role/ にある role-member-host-present.yml ファイルのコピーを作成します。

    $ cp /usr/share/doc/ansible-freeipa/playbooks/role/role-member-host-present.yml role-member-host-present-copy.yml
  3. Ansible Playbook ファイル (role-member-host-present-copy.yml) を開きます。
  4. iparole タスクセクションに以下の変数を設定して、ファイルを調整します。

    • ipaadmin_password 変数は IdM 管理者のパスワードに設定します。
    • name 変数は、割り当てるロールの名前に設定します。
    • host 一覧をホストの名前に設定します。

    以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。

    ---
    - name: Playbook to manage IPA role with members.
      hosts: ipaserver
      become: yes
      gather_facts: no
    
      tasks:
      - iparole:
          ipaadmin_password: Secret123
          name: web_administrator
          host:
          - client01.idm.example.com
          action: member
  5. ファイルを保存します。
  6. Playbook ファイルとインベントリーファイルを指定して Ansible Playbook を実行します。

    $ ansible-playbook -v -i ~/<MyPlaybooks>/inventory role-member-host-present-copy.yml

関連情報

  • Ansible Vault を使用してパスワードを別のファイルに保存したり、Playbook ファイルの変数として暗号化する場合は、「Ansible Vault を使用したコンテンツの暗号化」を参照してください。
  • IdM でのロールの概念については「IdM のロール」を参照してください。
  • iparole モジュールを使用する他の Ansible Playbook の例については、/usr/share/doc/ansible-freeipa/ ディレクトリーにある README-role Markdown ファイルを参照してください。このファイルには iparole 変数の定義も含まれます。
  • iparole モジュールを使用する他の Ansible Playbook の例については、/usr/share/doc/ansible-freeipa/playbooks/iparole ディレクトリーを参照してください。