Ansible ディレクトリ 構成

Ansible の基本的なディレクトリ構成です。もちろん"この構成でなければならない"ということではありませんが、初めてAnsibleを試してみる方は参考になると思います。

ディレクトリ 役割
/site.yml トップのファイル。
全体を記述する。ここではWinClients.ymlをincludeする。
名前は任意。
/WinClients.yml グループのプレイブックを記載する。
ここでは"Winows クライアント"のグループを定義している。
名前は任意。
/inventory インベントリファイル。
グループ一覧、およびグループに属する機器を定義している。
/roles/CreateUser/tasks/main.yml 実行するPlaybook を role 化しています。これにより再利用が可能です。

/roles ディレクトリ名は固定です。

以下は固定です。
(ロール名)/tasks/main.yml
/host_vars 個々のホスト用の変数を定義する。
変数はインベントリファイル内に記載する方法などもあるがここでは別出しにしている。

ディレクトリ名の"host_vars"は固定である。
また(ホスト名).ymlも固定である。
/group_vars/WinClients.yml グループ用の変数を定義する。
変数はインベントリファイル内に記載する方法などもあるがここでは別出しにしている。

ディレクトリ名の"group_vars"は固定である。
また(グループ名).ymlも固定である。

サンプルはダウンロード可能です。IPアドレスを変更して使用してください。Ansible サンプルダウンロード

(1)site.yml

- include: WinClients.yml

(2)WinClients.yml

- name: WinClients
  hosts: WinClients
  roles:
    - CreateUser

(3)inventory

[WinClients]
192.168.11.17


(4)group_vars/WinClients.yml

---
ansible_user: username
ansible_password: "My!Pass777"
ansible_connection: winrm
ansible_port: 5986
ansible_winrm_server_cert_validation: ignore

(5)/roles/CreateUser/tasks/main.yml

---
- name: create test-group
  win_group:
    name: test-group
    descriptsion: test group
    state: present

実行コマンドは次の通りです。

ansible-playbook -i inventory site.yml