【发布时间】:2018-10-19 16:34:43
【问题描述】:
是否存在一些奇怪的 Ansible 行为,这意味着inventory_hostname 仅在某些上下文中有效?
这是我正在处理的剧本的一部分,第一个调试语句显示了正确的值,但 set_fact 然后选择了一个空列表,然后在第二个调试任务中选择了该列表。
出于某种原因,完全相同的表达式在debug 和set_fact 中的行为不同,我不明白为什么。就好像inventory_hostname 在set_fact 任务中未定义(我什至收到一条消息,提示如果我在两种情况下都标记为“| first”过滤器,就像我最终想要做的那样。
- name: debug it
debug:
var: all_tagged_droplets.json.droplets | selectattr('name', 'equalto', '{{inventory_hostname}}') | list
- name: find the right droplet
set_fact:
droplet: "{{ all_tagged_droplets.json.droplets | selectattr('name', 'equalto', '{{inventory_hostname}}') | list }}"
- name: debug it
debug:
var: droplet
关于如何将数据放入更明智的变量的任何指针?
【问题讨论】: