我正试图根据其标签获取ec2的实例ID。
- name: get instance_id of the last created ec2
ec2_instance_facts:
filters:
"tag:Name": Example
register: ec2_facts_result
在我的过滤器上,我有一个示例,但已进行了硬编码。我想用变量替换“名称”和“示例”。可以帮助我吗?
我已经声明了这些变量
tag_name_1:“环境”
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变量。
答案 0 :(得分:0)
您需要提供一个Jinja2模板,以呈现字典作为filters
参数的值,而不是在YAML中指定字典:
filters: "{{ {'tag:' + tag_name_1: tag_value_1} }}"