xab*_*ram 25 ansible ansible-playbook
我正在运行Ansible游戏,并希望列出它所针对的所有主机.Ansible文档提到这是可能的,但他们的方法似乎不适用于复杂的目标群体(针对主机:web_servers:&data_center_primary)
我确信这是可行的,但似乎无法找到任何进一步的文档.所有当前目标主机都有变量吗?
sir*_*bax 30
您正在寻找'play_hosts'变量
---
- hosts: all
tasks:
- name: Create a group of all hosts by app_type
group_by: key={{app_type}}
- debug: msg="groups={{groups}}"
run_once: true
- hosts: web:&some_other_group
tasks:
- debug: msg="play_hosts={{play_hosts}}"
run_once: true
Run Code Online (Sandbox Code Playgroud)
会导致
TASK: [Create a group of all hosts by app_type] *******************************
changed: [web1] => {"changed": true, "groups": {"web": ["web1", "web2"], "load_balancer": ["web3"]}}
TASK: [debug msg="play_hosts={{play_hosts}}"] *********************************
ok: [web1] => {
"msg": "play_hosts=['web1']"
}
Run Code Online (Sandbox Code Playgroud)
库存:
[proxy]
web1 app_type=web
web2 app_type=web
web3 app_type=load_balancer
[some_other_group]
web1
web3
Run Code Online (Sandbox Code Playgroud)
udo*_*dan 22
您可以使用该选项--list-hosts仅列出剧本可能影响的主机.
此外,还有一个dict hostvars,它包含Ansible目前已知的所有主机.但我认为该setup模块必须在所有主机上运行,因此您不能跳过该步骤gather_facts: no.
| 归档时间: |
|
| 查看次数: |
48024 次 |
| 最近记录: |