5.3. ansible-freeipa のインベントリープラグイン
ansible-freeipa
の freeipa
インベントリープラグインを使用すると、ansible-freeipa
Playbook で使用される Identity Management (IdM) サーバーの動的インベントリーを作成できます。このプラグインは、ドメイン内の IdM サーバーに関するデータを収集し、指定された 1 つまたは複数の IdM サーバーロールが割り当てられているサーバーのみを選択します。ansible-playbook
コマンドでこのプラグインを使用するには、-i
オプションの値を、freeipa
プラグインを使用するインベントリーファイルに設定します。すると、Playbook 内のプレイが、インベントリーファイルで指定されたロールを持つサーバーに対してのみ実行されます。
以下の例では、freeipa
プラグインを使用して、トポロジー内で DNS ロールを持つ IdM サーバー上の bind
パッケージのバージョンを確認する方法について説明します。
手順
inventory.yml などのファイルを作成して、選択した IdM サーバーロールに基づいて動的インベントリーを生成します。たとえば、IdM DNS サーバーロールを持つサーバーのインベントリーを作成するには、以下を指定します。
--- plugin: freeipa server: server.idm.example.com ipaadmin_password: Secret123 verify: ca.crt role: DNS server
-
server
には、スキャンを開始するホストの完全修飾ドメイン名を定義します。 -
verify
には、検証用のサーバー TLS 証明書ファイルを定義します。 -
role
には、ホストが返されるために持っている必要があるサーバーロールをすべて定義します。
-
freeipa
インベントリープラグインによって特定された IdM サーバーに対して実行する Playbook (bind-playbook.yml など) を作成します。たとえば、IdM DNS サーバーにインストールされているbind
パッケージのリリースバージョンを確認するには、以下を指定します。--- - name: Check bind version hosts: ipaservers tasks: - name: Query bind package version package: name: bind state: present register: bind_version - name: Display bind release info debug: msg: "Bind release: {{ bind_version.results[0].version }}"
[オプション] プラグインによって特定された IdM サーバーのグラフ表現を作成します。
$ ansible-inventory -i inventory.yml --graph @all: |--@ungrouped |--@ipaservers: | |--replica01.idm.example.com
Ansible Playbook を実行します。inventory.yml ファイルをインベントリーとして指定します。
$ ansible-playbook -i inventory.yml bind-playbook.yml [...] TASK [Display bind release info] ok: [10.0.193.174] => { "msg": "Bind release: 9.20.3" } [...]