在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'],
所以它正在被设置,所以为什么不迭代呢?
答案 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
下指定了列表,则会出现相同的错误。