是否可以在库存文件中指定列表参数?

时间:2014-02-17 03:30:39

标签: ansible

例如,我在host_vars下有一个包含以下变量的文件:

hosts:
  - xxx
  - yyy

是否可以在库存文件中指定类似的变量?我知道您可以使用var=value指定单个值,但不能指定列表var。

1 个答案:

答案 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