民间, 我想运行一个简单的命令,假设设置一个主机名,如果在实例上设置了ec2标签。请考虑以下事项:
- name: Gather facts
action: ec2_facts
- name: Get instance ec2 facts
action: ec2_facts
register: ec2_facts
- name: Get resource tags from ec2 facts
sudo: false
local_action: ec2_tag resource={{ec2_facts.ansible_facts.ansible_ec2_instance_id}} region={{ec2_facts.ansible_facts.ansible_ec2_placement_region}} state=list
register: ec2_tags
- debug: msg="{{ ec2_tags.tags }}"
输出:
TASK: [foo | debug msg="{{ ec2_tags.tags }}"] *****************************
ok: [10.1.15.119] => {
"msg": "{'role': 'foo', 'Name': 'YAY', 'service': 'web', 'env': 'dev'}"
}
所以现在,我想做以下事情:
如果ec2_tags.tags.Name
存在,请设置主机名。 我如何在剧本中使用?这似乎失败了:
- name: friendly hostname
hostname: name={{ec2_tags.tags.Name}}
when: {{ec2_tags.tags.Name}}
谢谢!
答案 0 :(得分:3)
when: ec2_tags.tags.Name is defined
应该这样做