Ansible - теги ec2 заменяют как переменные - PullRequest
0 голосов
/ 25 августа 2018

Я пытаюсь получить идентификатор экземпляра базы ec2 по ее тегам.

 - name: get instance_id of the last created ec2
    ec2_instance_facts:
      filters:
        "tag:Name": Example
    register: ec2_facts_result

на моих фильтрах у меня есть пример, но он жестко закодирован. Я хочу заменить «Имя» и «Пример» с переменными. Может ли кто-нибудь помочь мне в этом?

я объявил эти переменные

tag_name_1: "Env"
tag_value_1: «постановка»

попытался запустить фильтры, используя этот синтаксис

- name: get instance_id of the last created ec2
  ec2_instance_facts:
  filters:
    "tag:{{ tag_name_1 }}": "{{ tag_value_1 }}"
  register: ec2_facts_result

но это результат, который я получил.

"tag: {{ tag_name_1 }}": "staging"

Он смог зафиксировать значение tag_value_1, но не переменную tag_name_1.

1 Ответ

0 голосов
/ 25 августа 2018

Необходимо указать шаблон Jinja2, отображающий словарь в качестве значения параметра filters, вместо указания словаря в YAML:

filters: "{{ {'tag:' + tag_name_1: tag_value_1} }}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...