例如,我在host_vars
下有一个包含以下变量的文件:
hosts:
- xxx
- yyy
是否可以在库存文件中指定类似的变量?我知道您可以使用var=value
指定单个值,但不能指定列表var。
答案 0 :(得分:0)
INI广告资源文件不允许像列表这样的结构化数据。作为解决方法,您可以使用问题中的符号来定义组或主机var文件中的列表。使用with_items
loop的游戏中的列表。
例如:
$ cat playbook.yml
- hosts: [webservers]
vars_files:
- vars/webservers.yml
tasks:
- debug: host={{item}}
with_items: hosts
$ cat inventory
[webservers]
web1
$ cat vars/webservers.yml
hosts:
- xxx
- yyy
$ ansible-playbook -i inventory playbook.yml
PLAY [webservers] *************************************************************
GATHERING FACTS ***************************************************************
ok: [localhost]
TASK: [debug host={{item}}] ***************************************************
ok: [localhost] => (item=xxx) => {
"item": "xxx",
"msg": "Hello world!"
}
ok: [localhost] => (item=yyy) => {
"item": "yyy",
"msg": "Hello world!"
}
PLAY RECAP ********************************************************************
localhost : ok=2 changed=0 unreachable=0 failed=0