我创建了一个角色和一个剧本,现在在我的剧本中,我正在定义Ec2标签,例如:
instance_tags: "Name={{ name }},bld_env={{ bld_env }},server={{ app_name }}-{{ bld_env }}"
我还必须为bld_env做一个条件,假设bld_env是“test”,添加更多标签。 在条件声明的情况下,你可以帮我标记吗?
例如: 我的
tagging.yml
文件:
- name: Launch EC2 host
hosts: localhost
connection: local
gather_facts: False
vars:
bld_env: "{{ bld_env }}"
count: 1
instance_type: "{{ size }}"
image: "{{ image }}"
ansible_ssh_user: "ec2-user"
region: "{{ region }}"
pem_path: "~/.ssh"
group_name: "ec2hosts"
vpc_subnet_id: "{{ lookup('ini', 'vpc_subnet section=vpc file=./{{ bld_env }}.ini') }}"
assign_public_ip: "{{ ip }}"
keypair: "{{ key }}"
access_key: "{{ access }}"
secret_key: "{{ secret }}"
instance_tags: "Name={{ name }},bld_env={{ bld_env }},server={{ app_name }}-{{ bld_env }}"
security_group: "[{{ group }}]"
roles:
- ec2
现在你可以在这里看到instance_tags,我想在这个instance_tags下添加一个条件:当bld_env是“test”时添加另一个标签“Label = ec2start-stop” 因此,只有当bld_env为“test”时才需要添加此Label,因为我在这里处理多个env ..
答案 0 :(得分:0)
例如,你可以在表达式中使用任何Jinja2条件(参见行尾):
instance_tags: "Name={{ name }},bld_env={{ bld_env }},server={{ app_name }}-{{ bld_env }}{{ '' if bld_env != 'test' else ',other_tag='+other_tag_value }}"
如果bld_env != 'test'
或,other_tag=<other_tag_value>
,则会追加空行。