Ansible嵌套循环交叉列表引用?

时间:2016-08-25 18:55:17

标签: loops ansible nested-loops ansible-playbook

我试图解决这个问题,坦率地说,我开始认为它并没有这样做。

- name: Create directories
  file:
    path: "{{ item[0] }}"
    state: directory
    owner: some_user
    group: some_group
    mode: some_mode
  with_nested:
     - [ '/var/lib/{{ item[1] }}', '/var/lib/{{ item[1] }}/conf' ]
     - [ 'app1', 'app2' ] 

显然这里有一个范围问题,我只是没有得到它。

如果它不够清楚,我想先创建app目录,然后在每个内部进行配置。

提前致谢

1 个答案:

答案 0 :(得分:1)

要创建目录,您只需要一个循环:

- name: Create directories
  file:
    path: "/var/lib/{{ item }}/conf"
    state: directory
  with_items:
     - app1
     - app2

来自docs

  

如果state=directory,将创建所有直接子目录(如果它们不存在),因为1.7将使用提供的权限创建它们

更新:如果有多个子文件夹(conf,日志等):

- name: Create directories
  file:
    path: "/var/lib/{{ item[1] }}/{{ item[0] }}"
    state: directory
  with_nested: 
     - [ 'conf', 'logs' ]
     - [ 'app1', 'app2' ]