如何将单词与“分开”-&引用;在ansible
步骤1:我正在获取ec2元数据详细信息如何将单词与“分开”-&引用;在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
---
- 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}”