如何将单词与“分开”-&引用;在ansible

如何将单词与“分开”-&引用;在ansible,ansible,Ansible,步骤1:我正在获取ec2元数据详细信息 --- - ec2_metadata_facts: register: instance_meta - ec2_instance_info: instance_ids: - "{{ instance_meta.ansible_facts.ansible_ec2_instance_id }}" region: "{{ instance_meta.ansible_facts.ansible_ec2

步骤1:我正在获取ec2元数据详细信息

---

- ec2_metadata_facts:
  register: instance_meta
- ec2_instance_info:
    instance_ids:
      - "{{ instance_meta.ansible_facts.ansible_ec2_instance_id }}"
    region: "{{ instance_meta.ansible_facts.ansible_ec2_placement_region }}"
  register: instance_info

- name: Gather and Save Instance Info
  set_fact:
      Application: "{{ instance_info.instances | map(attribute='tags.Application') | list | join('\n') }}"
      Component: "{{ instance_info.instances | map(attribute='tags.Component') | list | join('\n') }}"
      Namespace: "{{ instance_info.instances | map(attribute='tags.Namespace') | list | join('\n') }}"
      Environment: "{{ instance_info.instances | map(attribute='tags.Environment') | list | join('\n') }}"
步骤2:

在vars/main.yml中,我有以下代码

license_key_name: "{{ Namespace }}"-"{{ Application }}"-"{{ Environment }}"
newrelic_license_keys: {
    'dth-tld-ops1': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    'dth-fld-ops2': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    'dth-glb-ops1': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    'dth-plb-ops2': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    'dth-leu-pro2': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
}
步骤3:在defaults/main.yml中

nrinfragent_config:
  license_key: newrelic_license_keys[license_key_name] 
步骤4:

在templates/file.j2中

{# Print out all the configuration options #}
{{ nrinfragent_config | to_nice_yaml }}

{# For backward compatibility, the license key will be written if it is defined #}
{% if nrinfragent_license_key is defined %}
license_key: "{{ newrelic_license_keys[license_key_name] }}"
{% endif %}
Jinja模板应该从vars/main.yml文件中获取正确的许可证。我们有多个AWS环境,每个都有单独的new relic许可证

错误:

license_key_name: "{{ Namespace }}"-"{{ Application }}"-"{{ Environment }}"
                                   ^ here
We could be wrong, but this one looks like it might be an issue with
missing quotes. Always quote template expression brackets when they
start a value. For instance:
    with_items:
      - {{ foo }}
Should be written as:
    with_items:
      - "{{ foo }}"

您需要用引号将整个值括起来,而不是将每个变量单独括起来


许可证密钥名称:“{{Namespace}}-{{Application}-{{Environment}}”

hi,有趣的是,可能用引号将整个表达式括起来
“{{Namespace}-{Application}-{Environment}”