If statement 是否可以在.yml文件ansible中添加条件语句?
我已经创建了一个角色和一个剧本,现在在我的剧本中,我正在定义Ec2标签,例如:If statement 是否可以在.yml文件ansible中添加条件语句?,if-statement,amazon-ec2,ansible,tagging,If Statement,Amazon Ec2,Ansible,Tagging,我已经创建了一个角色和一个剧本,现在在我的剧本中,我正在定义Ec2标签,例如: instance_tags: "Name={{ name }},bld_env={{ bld_env }},server={{ app_name }}-{{ bld_env }}" 我还必须在这里为bld_env设置一个条件,假设如果bld_env是“test”,则添加更多标记。 如果是条件语句,你能帮我标记一下吗 例如: 我的 tagging.yml 文件: - name: Launch EC
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
现在您可以在这里看到实例_标记,我想在此实例_标记下添加一个条件:当bld_env为“test”时,添加另一个标记“Label=ec2start stop”
因此,只有当bld_env为“test”时,才必须添加此标签,因为我在这里处理的是多个env。您可以在表达式中使用任何Jinja2条件,例如(请参见行尾):
如果
bld_env!='测试“
或,其他标签=
否则。谢谢,但我可以在我的剧本中添加if条件,这是一个.yml文件?请在操作中提供更多上下文。现在检查描述。我现在更新了一个示例。不,您不能将任何类型的条件附加到变量定义,只能使表达式本身具有条件(如我所示)。
instance_tags: "Name={{ name }},bld_env={{ bld_env }},server={{ app_name }}-{{ bld_env }}{{ '' if bld_env != 'test' else ',other_tag='+other_tag_value }}"