Как раскрутить несколько экземпляров EC2 в разных соответствующих подсетях, используя ANSIBLE?
Я пытаюсь раскрутить несколько экземпляров EC2, используя Ansible, в другой зоне доступности и, следовательно, в подсетях. Что меня смущает, так это как я могу передать правильную подсеть, соответствующую правой зоне?
Предположим, я передаю свои переменные подсети как:
subnet_id_a: "subnet-9c3e38f8"
subnet_id_b: "subnet-88d171ff"
теперь эти подсети находятся в разных азимутах, мне нужно создать несколько n экземпляров, которые нужно вращать в разных азимутах
Я пытаюсь использовать:
- name: Create ES Master Node instances
ec2:
key_name: "{{ aws_key_name }}"
instance_type: "{{ aws_instance_type }}"
image: "{{ aws_ami }}"
wait: yes
wait_timeout: 500
count: "{{ master_instance_count }}"
instance_tags:
Name: "{{ master_tag_name }}"
volumes:
- device_name: /dev/sda1
volume_type: gp2
volume_size: 100
vpc_subnet_id: "{{ subnet_id }}"
zone: "{{ aws_region }}{{ item.0 }}"
region: "{{ aws_region }}"
group: "{{ aws_sec_group_name }}"
with_items:
- [ 'a' , 'b']
register: ec2_details
Но я не уверен, как можно передать соответствующие подсети в соответствии с этим, чтобы каждый экземпляр вращался в разных аз? пожалуйста помоги
1 ответ
Вы можете реорганизовать переменную следующим образом:
subnet_ids:
a: subnet-9c3e38f8
b: subnet-88d171ff
И в твоей задаче:
...
vpc_subnet_id: "{{ subnet_ids[item] }}"
...
with_items: [a, b]
Я полагаю zone
не является необходимым, потому что подсеть уже связана с некоторым AZ.
И вам не нужно вкладывать свой список петель, как это - [a, b]
, используйте только [a, b]
избежать item.0
,