2017-02-09 5 views
1

Я пытаюсь запустить N количество экземпляров ec2, используя ansible с тегом: имя типа «nginx1, nginx2» в зависимости от N числа экземпляров, я довольно конечно, есть способ, но я не знаю, какAnsible сгенерирует тег ec2 Имя с инкрементным номером

- name: Nginx Nodes 
    ec2: 
    key_name: "{{ key_name }}" 
    region: "{{ region }}" 
    instance_type: t2.nano 
    image: "{{ nginx_ami }}" 
    group: nginxsg 
    exact_count: 2 
    count_tag: 
     Name: "{{ nginx_name }}" 
    instance_tags: 
     Name: "{{ nginx_name }}" 
     Environment: "{{ env }}" 
    monitoring: no 
    vpc_subnet_id: "{{ AWS.db_subnets | random }}" 
    assign_public_ip: yes 
    register: nignx_instance 

ответ

0

Может быть что-то вроде этого, отрегулируйте этот пример согласно вашему требованию.

- name: Nginx Nodes 
    ec2: 
    key_name: "{{ key_name }}" 
    region: "{{ region }}" 
    instance_type: t2.nano 
    image: "{{ nginx_ami }}" 
    group: nginxsg 
    instance_tags: 
     Name: "{{ nginx_name }}-{{ item.0 + 1 }}" 
     Environment: "{{ env }}" 
    monitoring: no 
    vpc_subnet_id: "{{ item.1 }}" 
    assign_public_ip: yes 
    with_indexed_items: "{{ AWS.db_subnets }}" 
    register: nignx_instance 

Для получения полной справки, обратитесь в этом link

+0

Забыла удалить 'exact_count'. –

+0

@KonstantinSuvorov Спасибо –

+0

@ArbabNazar Проблема с этим подходом заключается в том, что я в зависимости от количества подсети у меня есть, что произойдет, если я хочу больше машин, чем количество подсетей? возможно, создав массив с тем же размером в размере ec2, который мне нужен первым, а затем используйте with_indexed_items. –