実現したいこと
Ansible TowerのInventory > hostsにて、特定にhostを指定した先に定義できるvariablesはhostvarsではないことが分かりました。
これをansible-playbook
コマンドで検証してから、Ansible Tower上で実行したい場合に以下のことが知りたいです。
- Ansible Towerを実行する際の構成に関して、ansible-playbookを実行する際にどのように定義すれば同じ状況を作れるか。
該当のソースコード
ansible-playbook
- inventory
test-group: hosts: ansible-test1: vars: vars1: "aaa" vars2: "bbb" vars3: "ccc" ansible-test2: vars: vars1: "ddd" vars2: "eee" vars3: "fff" ansible-test3: vars: vars1: "ggg" vars2: "hhh" vars3: "iii"
- playbook
--- - name: test hosts: all gather_facts: no tasks: - name: vars debug: msg: "{{ vars }}"
Ansible Tower
- inventory
Inventory > hosts
3つあるhostのうち1つ
- playbook
ansible-playbookと同様
詳細
Ansible Towerとansible-playbookコマンドでは、欲しいvarsの階層が違う。
Ansible Towerでは、欲しいvars(vars1, vars2, vars3)がhostvarsと同様の階層にあるのに対し、
ansible-playbookコマンドでは、varsの下にその3つのvarsが入っている。
- ansible-playbook
ok: [ansible-test3] => { "msg": { (省略) "groups": { "all": [ "ansible-test1", "ansible-test2", "ansible-test3" ], "test-group": [ "ansible-test1", "ansible-test2", "ansible-test3" ], "ungrouped": [] }, "hostvars": { "ansible-test1": { (省略) "vars": { "vars1": "aaa", "vars2": "bbb", "vars3": "ccc" } }, "ansible-test2": { (省略) "vars": { "vars1": "ddd", "vars2": "eee", "vars3": "fff" } }, "ansible-test3": { (省略) "vars": { "vars1": "ggg", "vars2": "hhh", "vars3": "iii" } } }, (省略) "vars": { "vars1": "ggg", "vars2": "hhh", "vars3": "iii" } } }
- Ansible Tower
これより上は省略 ok: [ansible-test3] => { "msg": { (省略) "groups": { "all": [ "ansible-test2", "ansible-test3", "ansible-test1" ], "test-group": [ "ansible-test2", "ansible-test3", "ansible-test1" ], "ungrouped": [] }, "hostvars": { "ansible-test1": { (省略) "vars1": "aaa", "vars2": "bbb", "vars3": "ccc" }, "ansible-test2": { (省略) "vars1": "ddd", "vars2": "eee", "vars3": "fff" }, "ansible-test3": { (省略) "vars1": "ggg", "vars2": "hhh", "vars3": "iii" } }, (省略) "vars1": "ggg", "vars2": "hhh", "vars3": "iii" } }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/07 05:15
2022/01/07 07:12 編集
2022/01/20 04:06
2022/02/26 10:53