Ну, если мы г йти использовать динамический инвентарь, то я рекомендую использовать count_tags и exact_count с модулем ec2 при создании экземпляров с create.yml:
---
- hosts: localhost
connection: local
gather_facts: false
vars_files: { ./env.yml }
tasks:
- name: Provision a set of instances
ec2:
instance_type: "{{ item.value.instance_type }}"
image: "{{ image }}"
region: "{{ region }}"
vpc_subnet_id: "{{ item.value.vpc_subnet_id }}"
tenancy: "{{ tenancy }}"
group_id: "{{ group_id }}"
key_name: "{{ key_name }}"
wait: true
instance_tags:
Name: "{{ env_id }}"
Type: "{{ item.key }}"
count_tag:
Type: "{{ item.key }}"
exact_count: "{{ item.value.count }}"
with_dict: "{{ servers }}"
register: ec2
Файл env.yml имеет все эти переменные, и серверный словарь:
---
env_id: JaxDemo
key_name: JaxMagicKeyPair
image: "ami-xxxxxxxx"
region: us-east-1
group_id: "sg-xxxxxxxx,sg-yyyyyyyy,sg-zzzzzzzz"
tenancy: dedicated
servers:
app:
count: 2
vpc_subnet_id: subnet-xxxxxxxx
instance_type: m3.medium
httpd:
count: 1
vpc_subnet_id: subnet-yyyyyyyy
instance_type: m3.medium
oracle:
count: 1
vpc_subnet_id: subnet-zzzzzzzz
instance_type: m4.4xlarge
Теперь, если вы хотите изменить количество серверов, просто измените счет в словаре серверов. Если вы хотите удалить все из них, мы все подсчитываем до 0.
Или, если хотите, скопировать создать.YML файл delete_all.yml и заменить
exact_count: "{{ item.value.count }}"
с
exact_count: 0
только один сервер, это, кажется, работает для меня после запуска ec2_facts: {{}} ansible_ec2_instance_id – radtek