【发布时间】:2017-07-11 01:09:26
【问题描述】:
Ansible 1.9.4
在我的group_vars/slave/slave 文件中,我将以下变量设置为 NULL 值(更准确地说是无/未定义/空字符串):
# NFS mount settings
slave_nfsmount:
Playbook 调用任务/动作:
- name: Ensure nfs mount directory exists
file: path={{item.key}} state=directory
with_dict: "{{slave_nfsmount | default({})}}"
ignore_errors: yes
收到错误消息:
TASK: [Ensure nfs mount directory exists] **************************************
fatal: [12.19.22.33] => with_dict expects a dict
FATAL: all hosts have already failed -- aborting
我不想想在 global_vars/slave/slave 文件中设置 slave_nfsmount 变量的值(因为用户可以在命令行中传递该值,也可以通过其他方式使其可用,具体取决于用户想要在运行时传递什么)。因为,目前它对 slave_nfsmount 变量使用 NULL、空白/无值,所以我使用 "{{ slave_nfsmount | default({})}}" 和 with_dict: 语句。
当值为空白/null/未定义/空时,我如何才能使这项工作发挥作用,以便我的剧本不会失败?
我尝试给予:and slave_nfsmount is not defined
或
ignore_errors: yes (True),但它不起作用,playbook 仍然失败,出现如上所示的致命错误。
【问题讨论】:
-
同意@techraf,但问题仍然有效:)
标签: ansible ansible-2.x