ansible两个变量替换任务中的项目

时间:2017-12-20 13:37:22

标签: ansible ansible-2.x

我想完成下面的任务 {{snapshot_id}}已在变量中注册。 (它注册3个或更多快照ID的快照ID)

instance id是另一个varable,其值从库存中读取

我想在任务中传递如下所示的varailes

snapshot_id [0] --->基团[' WEBA']

snapthot_id [1] ---->基团['韦伯']

 ec2_vol:
        snapshot: "{{ snapshot_id }}"
        instance: "{{ hostvars[item]['instance_id'] }}"
        region: "{{ aws_region }}"
        device_name: /dev/sda1
     register: volume_id
     with_items:
         - {{ snapshot_id[0], groups['webA'] }}
         - {{ snapshot_id[1], groups['webB']    }}
         - {{ }}
         - {{ }}

实现这一目标的正确语法是什么。

1 个答案:

答案 0 :(得分:-1)

使用with_together你可以想出这样的事情:

 ec2_vol:
        snapshot: "{{ item.0}}"
        instance: "{{ hostvars[item.1]['instance_id'] }}"
        region: "{{ aws_region }}"
        device_name: /dev/sda1
     register: volume_id
     with_together:
         - {{ snapshot_id }}
         - {{ [ groups['webA'], groups['webB'] ] }}

我不确定你在group vars的哪个位置,但这应该满足你的需要。