amazon-web-services - Ansible - ec2 标签替换为变量
问题描述
我正在尝试根据其标签获取 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 变量。
解决方案
您需要提供一个 Jinja2 模板,将字典呈现为filters
参数的值,而不是在 YAML 中指定字典:
filters: "{{ {'tag:' + tag_name_1: tag_value_1} }}"
推荐阅读
- sql - 列值在输出中重复
- linux - Nginx: curl: (60) SSL证书问题:无法获取本地颁发者证书
- javascript - React.js Bootsrap 在执行“简单”任务时返回空错误
- django - DRF PointField 验证错误 - “输入有效位置”
- c# - 如果座位已经保留,C# Automatic Shows Button Disabled
- node.js - 对 localhost 的 POST 请求未在 NodeJS 中发送响应
- java - 在创建 Hibernate XML 映射文件时获取 java.lang.NullPointerException
- azure - 使用 Invocation Id 杀死正在运行的 azure 函数实例
- matlab - 更改 inputdlg 字段名称的颜色
- shibboleth - Shibboleth 4 IDP:使用密码流查询两个不同的登录源