AnsibleのInventoryファイルで管理対象のサーバを定義する!

Ansibleを使いこなすにあたり、まず整備する必要があるのが、管理対象を定義するInventoryファイルです。

Inventoryファイルの基本的な書式を確認する!

Inventoryファイルに管理対象のサーバを一覧形式で登録します。サーバは、グループ化が可能で、接続のための情報を定義することができます。

$ cat inventory.ini
[servers_debian]
server01  ansible_ssh_user=usradmin
server02  ansible_ssh_user=usradmin

[servers_rhel]
server11  ansible_ssh_user=usradmin
server12  ansible_ssh_user=usradmin

サーバの定義のグループ化を行う!

サーバの定義は「:children」の定義を使用することで、グループのグループ化をすることができます。

$ cat inventory.ini
[servers_debian]
server01  ansible_ssh_user=usradmin
server02  ansible_ssh_user=usradmin

[servers_rhel]
server11  ansible_ssh_user=usradmin
server12  ansible_ssh_user=usradmin

[servers_linux:children]
servers_debian
servers_rhel

グループ化した名前でansibleを実行してみる!

以下のPlaybookを使用して、疎通確認を行ってみます。

$ cat ping_all.yml
---
- hosts: all
  tasks: 
  - name: ping all
    ping:

以下のコマンドで、Inventoryファイルに定義した全サーバに対して、ansibleでの疎通確認を行うことができます。

$ ansible-playbook -i inventory.ini ping_all.yml

おわりに

Inventoryファイルはコマンドラインで指定できるので、用途に応じて使い分けが可能で、Inventoryファイル内でグループ化ができます。Inventoryファイルは、Playbookでの使用方法を考えながら、体系立てて作成します。

参考情報

関連記事

Ansible書籍(Amazon)

Ansible実践ガイド 第3版 impress top gearシリーズ

Ansibleクックブック impress top gearシリーズ