ansible - 如何在ansible模板模块中忽略{{
问题描述
下面是我的ansible剧本:
播放.yml
- name: gk
hosts: localhost
vars:
region_list: ["ap-southeast-1"]
tasks:
- name: "Generate region based patching solution for active regions"
template:
#src: "terraform_12/patching/patching.tf.j2"
src: patching.tf.j2
dest: "patching_{{ item }}.tf"
with_items: "{{ region_list }}"
在 patching.tf.j2 下面
{% for region in region_list %}
provider "aws" {
alias = "{{ region }}"
region = "{{ region }}"
version = "~> 2.70.0"
assume_role {
role_arn = var.assume_role
session_name = "terraform"
}
}
resource "aws_ssm_maintenance_window_task" "lamnbda_execution_after_install_{{ region }}" {
count = lower(var.patching_enabled) == "enabled" ? 1 : 0
name = "${var.target_infra}-lambda-execute"
max_concurrency = 100
max_errors = 100
priority = 10
service_role_arn = aws_iam_role.ssm_maintenance_{{ region }}.0.arn
task_arn = aws_lambda_function.ssm_patch_export_{{ region }}.0.arn
task_type = "LAMBDA"
window_id = aws_ssm_maintenance_window.install_window_{{ region }}.0.id
targets {
key = "WindowTargetIds"
values = aws_ssm_maintenance_window_target.install_target_{{ region }}.*.id
}
task_invocation_parameters {
lambda_parameters {
payload = "{\"instanceid\":\"{{TARGET_ID}}\"}"
}
}
}
现在从模板中,我想保持
payload = "{\"instanceid\":\"{{TARGET_ID}}\"}"
原样,不评估{{TARGET_ID}}
尝试过转义字符,例如
payload = "{\"instanceid\":\"'{{'TARGET_ID'}}'\"}"
和许多其他组合,但它以某种方式显示'
'{{' 围绕该行是否需要任何修改?
解决方案
以下语法可用于“转义” jinja 模板中的大括号:
{{ '{{' }}TARGET_ID{{ '}}' }}
获取您的 j2 模板的一部分并运行它:
j2模板:
task_invocation_parameters {
lambda_parameters {
payload = "{\"instanceid\":\"{{ '{{' }}TARGET_ID{{ '}}' }}\"}"
}
}
}
制作文件:
task_invocation_parameters {
lambda_parameters {
payload = "{\"instanceid\":\"{{TARGET_ID}}\"}"
}
}
}
推荐阅读
- node.js - 集成 API 需要哪些知识?
- r - 安装插入符号包 R 3.1.5 ubuntu 18 的问题
- android - 一旦第一个微调器选择了一个项目,就显示第二个微调器对话框,如果没有,则显示消息
- go - 使用路径中的参数时如何更改静态文件的url
- angular - (Angular 5/6) 使用 httpClient 对补丁请求进行单元测试
- excel - Excel公式比较两列并从另一列中提取值
- wordpress - 在 WordPress 中通过数据库添加菜单
- c# - 如何在实际类中引用枚举而不是 C# 中的基类
- sql - 在 SQL 中将多列转换为一列但多行
- oauth-2.0 - OAuth2:防止合法资源服务器滥用访问令牌