Ansible List默认值

时间:2017-10-30 11:23:55

标签: ansible

在ansible中可以在defaults/main.yml文件中有一个列表,我想设置文件组的权限,但我想在我的角色中使用可以覆盖的默认列表。

defaults/main.yml

libexec_path: /opt/nagios/libexec
libexec_owner: nagios
libexec_group: www-data
run_as_root:
  - check_dhcp
  - check_icmp

tasks/main.yml

# Files needing to run as root u+s
- file:
    path: "{{ libexec_path }}/{{ item }}"
    owner: root
    group: "{{ libexec_group }}"
    mode: 4775
    with_items: "{{ run_as_root }}"

但是我一直收到错误:

  

失败! => {“failed”:true,“msg”:“该任务包含一个选项   一个未定义的变量。错误是:'item'未定义...

我尝试过设置

strategy: debug
主yml文件中的

和调试器报告:

  

u'run_as_root':[u'check_dhcp',u'check_icmp'],

所以它正在被设置,所以为什么不迭代呢?

1 个答案:

答案 0 :(得分:2)

修复缩进!

- file:
    path: "{{ libexec_path }}/{{ item }}"
    owner: root
    group: "{{ libexec_group }}"
    mode: 4775
  with_items: "{{ run_as_root }}"

您有一条错误消息,说明item未定义; run_as_root。如果您直接在with_items下指定了列表,则会出现相同的错误。