1

运行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') }}"

还尝试在冒号前放置 \、\、/、// 字符。不工作。

有人可以帮忙吗?:(

4

1 回答 1

3

当想要逃避? : -ansible 文档时,建议用双引号引用它们"(此处的文档在您的情况下,这相当困难,因为您应该在 json_query 过滤器中使用单引号。您可以尝试用 var 替换该过滤器的参数,稍后当您声明该 var 时,您可以使用双引号。

 set_fact:
    number_of_nodes: "{{ ec2.instances|json_query(the_var) }}"
 vars:
    the_var: "[*].tags.aws:lc:sg"

我希望这有帮助!干杯!

于 2019-03-15T08:25:53.833 回答