我有一个清单,其中定义了一些变量,例如服务器 IP:
all:
children:
my_servers:
children:
data:
hosts:
data01.mydomain:
ansible_host: 10.0.0.1
es_name: "data01"
data02.mydomain:
ansible_host: 10.0.0.2
es_name: "data02"
Run Code Online (Sandbox Code Playgroud)
我知道要访问主机名,我可以使用“{{ groups['data'] }}”之类的内容,这将迭代主机名。
我想做的是迭代每个主机名中的 var“ansible_host”(以在防火墙上打开规则)。我可以使用“{{ hostvars['data01']['ansible_host'] }}”获得值 1,但我找不到迭代清单上所有主机的方法。
干得好。记得用-i hosts
---
- name: Play
hosts: localhost
tasks:
- name: iterate
debug:
msg: "{{ item }}:{{ hostvars[item].ansible_ssh_host }}"
with_items:
- "{{ groups['all'] }}"
Run Code Online (Sandbox Code Playgroud)
ansible-playbook -i hosts play.yml
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2517 次 |
| 最近记录: |