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