Как избежать символа двоеточия в запросе json, используя ansible - PullRequest
0 голосов
/ 15 марта 2019

Запуск 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') }}"

Также пробовал, помещая символы \, \, /, // перед двоеточием.Не работает

Может кто-нибудь помочь?(

1 Ответ

2 голосов
/ 15 марта 2019

При желании убежать ? : - ансамбль рекомендует заключать их в двойные кавычки ".(docs здесь В вашем случае это довольно сложно, так как вы должны использовать одинарные кавычки в фильтре json_query. Вы можете попробовать заменить аргументы этого фильтра на var, а позже, когда вы объявите этот var, вы можете использоватьдвойные кавычки.

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

Надеюсь, это поможет! Ура!

...