如何在ansible模板模块中忽略{{
以下是我的ansible剧本: play.yml如何在ansible模板模块中忽略{{,ansible,jinja2,Ansible,Jinja2,以下是我的ansible剧本: play.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
- 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\u ID}}}”
原样,不计算{{TARGET\u ID}
尝试过转义字符,比如
payload=“{\'instanceid\”:\“{{{'TARGET\u ID'}}}”}”
和许多其他组合,但它以某种方式显示了“
和{”
该行是否需要修改?t以下语法可用于“转义”jinja模板中的花括号:
{{ '{{' }}TARGET_ID{{ '}}' }}
参与并运行j2模板:
j2模板:
task_invocation_parameters {
lambda_parameters {
payload = "{\"instanceid\":\"{{ '{{' }}TARGET_ID{{ '}}' }}\"}"
}
}
}
生成的文件:
task_invocation_parameters {
lambda_parameters {
payload = "{\"instanceid\":\"{{TARGET_ID}}\"}"
}
}
}
t以下语法可用于“转义”jinja模板中的花括号:
{{ '{{' }}TARGET_ID{{ '}}' }}
参与并运行j2模板:
j2模板:
task_invocation_parameters {
lambda_parameters {
payload = "{\"instanceid\":\"{{ '{{' }}TARGET_ID{{ '}}' }}\"}"
}
}
}
生成的文件:
task_invocation_parameters {
lambda_parameters {
payload = "{\"instanceid\":\"{{TARGET_ID}}\"}"
}
}
}