如何在ansible模板模块中忽略{{

如何在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

以下是我的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/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}}\"}"
    }
  }
}