2016-11-30 59 views
2

一个时,声明鉴于这一任务,特别是在当语句,什么是参考以下标记方式:我如何引用标签在Ansible

"tags": { 
    "Name": "volume1" 
    }, 

任务:

- name: Attach correct ebs volume to correct instance using tags 
    local_action: 
     module: ec2_vol 
     region: '{{ region }}' 
     instance: "{{ item.instance_ids[0] }}" 
     id: vol-1111111111111111 
     name: ebs-volume1 
     device_name: /dev/sdf 
    with_items: '{{ ec2.results }}' 
    when: 
    - item.instance_ids[0] is defined 
    - item.tagged_instances.tags.Name == "volume1" 

我收到一个错误,说没有属性“标签”。

我似乎无法在调试语句中正确引用它。

我想这可能是这样的:

item.tagged_instances.tags == “名称”: “VOLUME1”

我应该有大括号?

谢谢!

尼克

+1

您可以随时调试:var = item'来检查它的内容和可用属性。我怀疑'tagged_instances'会在那里。 –

+0

在使用debug之后:var = item来检查它我认为这一切都可以,但是后来我意识到这个项目没有tagged_Instances的迭代。谢谢!我只是在看什么是工作,而不是调试的那部分不是... – Cloudish123

+0

...我有一个当我的调试时声明,正在跳过我的任务不是... ...再次感谢 – Cloudish123

回答

1

这对那些需要它的答案:

时:item.tagged_instances [0] .tags.Name == “VOLUME1”

这确保了任务仅适用于具有卷1标签的实例。很简约。在这种情况下,密钥为名称,值为volume1。

谢谢!