从我在网上找到的资料来看,Ansible 在 jinja 模板方面并不能很好地支持变量插值。
但是我确信在 Ansible 中更高级的人已经找到了解决我的问题的方法。
我想将一个变量“插入”到WHEN语句中。IEwhen: Disabled in (smart_link_status.results[item[0]].stdout)
这是我的玩法:
- name: "Get Smart Link status"
shell: "{{ssh_command}} show network {{network_name}}_{{item}} | grep 'Smart Link'"
register: "smart_link_status"
with_items:
- "{{uplink_id}}"
- name: "enable SmartLink for the network"
shell: "{{ssh_command}} set network {{network_name}}_{{item[1]}} SmartLink={{smart_link}}"
when: Disabled in (smart_link_status.results[item[0]].stdout)
with_indexed_items:
- "{{uplink_id}}"
我怎样才能做到这一点?似乎我可以使用普通模块轻松做到这一点,即调试但不能使用WHEN语句。
这工作正常:
- debug:
msg: "{{ls_bin.results[item[0]].stdout}}"
with_indexed_items:
- "{{bob}}"
任何帮助或指示将不胜感激。