运行 ec2_instance_facts Ansible模块并将其注册到名为 ec2 的变量中。
我在ec2实例上有标签,其键名中包含冒号字符。
我可以使用以下方法获取环境标记值:
set_fact:
number_of_nodes: "{{ ec2.instances|json_query('[*].tags.environment') }}"
但是无法尝试尝试获取以下“ aws:lc:sg” 的值:
set_fact:
number_of_nodes: "{{ ec2.instances|json_query('[*].tags.aws:lc:sg') }}"
还尝试通过将\,\,/,//字符放在冒号之前。不起作用
有人可以帮忙吗? :(
答案 0 :(得分:1)
当想要转义? : -
时,ansible文档建议使用双引号"
对其进行引用。 (docs here在您的情况下相当困难,因为您应该在json_query过滤器中使用单引号。
您可以尝试用var替换该过滤器的参数,然后在声明该var时可以使用双引号。
set_fact:
number_of_nodes: "{{ ec2.instances|json_query(the_var) }}"
vars:
the_var: "[*].tags.aws:lc:sg"
我希望这会有所帮助! 干杯!