Hi Will,

Updated changes but see an error, could you please let me know what is
missing? Inserted code for your reference.

fatal: [localhost]: FAILED! => {"changed": false, "msg": "argument
instance_tags is of type <type 'str'> and we were unable to convert to
dict: dictionary requested, could not parse JSON or key=value"}



---

- name: Create a sandbox instance

  hosts: localhost

  connection: local

  gather_facts: True

  vars:

    aws_access_key: aabbccdd

    aws_secret_key: aabbccddeeffgghhiijjkk

    key_name: mykeypair

    ec2_instance_count: 5

    ec2_instance_tag:

     name:webserver

    instance_type: 't2.micro'

#    instance_type: 'c4.2xlarge'

    security_group: my_securitygroup

    group: default

    image: ami-00000000

#    region: us-west-2a

    ec2_url: https://ec2.us-west-2.amazonaws.com

  tasks:

    - name: Launch instance

      ec2:

         aws_access_key: "{{ aws_access_key }}"

         aws_secret_key: "{{ aws_secret_key }}"

         count_tag: "{{ ec2_instance_tag }}"

         ec2_url: "{{ ec2_url }}"

         exact_count: "{{ ec2_instance_count }}"

         group: "{{ security_group }}"

         key_name: "{{ key_name }}"

         image: "{{ image }}"

         instance_type: "{{ instance_type }}"

         instance_tags: "{{ ec2_instance_tag }}"

         wait: true

#         region: "{{ region }}"

         vpc_subnet_id: subnet-buiuuyyt

#         vpc_id: vpc-iuuytgfxds

         assign_public_ip: yes

      register: ec2


    - name: Add new instance to host group

      add_host:

        hostname: "{{ item.public_ip }}"

        groupname: launched

      with_items: "{{ ec2.instances }}"


    - name: Wait for SSH to come up

      wait_for:

        host: "{{ item.public_dns_name }}"

        port: 22

        delay: 60

        timeout: 320

        state: started

      with_items: "{{ ec2.instances }}"



On Sun, Apr 22, 2018 at 9:26 AM, Will McDonald <[email protected]> wrote:

> I think this is because you've defined the desired count in your vars but
> not actually in the invocation of the ec2 module.
>
> Something like this should work as you expect:
>
> - name: create webserver instances
>   hosts: localhost
>   connection: local
>   gather_facts: false
>
>   vars:
>     ec2_instance_count: 2
>     ec2_instance_tag:
>       name: webserver
>
>   tasks:
>     - name: provision ec2 webserver instances
>       ec2:
>         aws_access_key: "{{ aws_access_key }}"
>         aws_secret_key: "{{ aws_secret_key }}"
>         count_tag: "{{ ec2_instance_tag }}"
>         ec2_url: "{{ ec2_url }}"
>         exact_count: "{{ ec2_instance_count }}"
>         groups: "{{ ec2_security_group }}"
>         key_name: "{{ ec2_key_name }}"
>         image: "{{ ec2_image }}"
>         instance_tags: "{{ ec2_instance_tag }}"
>         instance_type: "{{ ec2_instance_type }}"
>         region: "{{ ec2_region }}"
>         wait: true
>       register: ec2
>
> Cheers,
>
> Will.
>
>
>
> On 22 April 2018 at 16:12, Love <[email protected]> wrote:
>
>> Dear Experts,
>>
>>
>>
>> How to launch multiple EC2 instances using ansible?
>>
>> I want to create an environment in AWS using below playbook but I see
>> only one instance is being created when I execute below playbook.
>>
>>
>> Could you please help with missing code/syntax here?
>>
>>
>> Note: I'm using free account with AWS.
>>
>>
>>
>>
>> ---
>>
>> - name: Create sandbox instances
>>
>>   hosts: localhost
>>
>>   gather_facts: True
>>
>>   vars:
>>
>>     aws_access_key: aabbccddeeffgghh
>>
>>     aws_secret_key: aabbccddeeffgghhiijjkkllmmnnoopp
>>
>>     key_name: mykeypair
>>
>>     count: 5
>>
>>     exact_count: 'count_tag'
>>
>>     instance_type: 't2.micro'
>>
>>     security_group: my_securitygroup
>>
>>     group: default
>>
>>     image: ami-00125160
>>
>>     ec2_url: https://ec2.us-west-2.amazonaws.com
>>
>>   tasks:
>>
>>     - name: Launch instance
>>
>>       ec2:
>>
>>          aws_access_key: "{{ aws_access_key }}"
>>
>>          aws_secret_key: "{{ aws_secret_key }}"
>>
>>          key_name: "{{ key_name }}"
>>
>>          group: "{{ security_group }}"
>>
>>          instance_type: "{{ instance_type }}"
>>
>>          count_tag: "{{ exact_count }}"
>>
>>          image: "{{ image }}"
>>
>>          wait: true
>>
>>          ec2_url: "{{ ec2_url }}"
>>
>>          vpc_subnet_id: subnet-edcf00db
>>
>>          assign_public_ip: yes
>>
>>       register: ec2
>>
>>
>>     - name: Add new instance to host group
>>
>>       add_host:
>>
>>         hostname: "{{ item.public_ip }}"
>>
>>         groupname: launched
>>
>>       with_items: "{{ ec2.instances }}"
>>
>>
>>     - name: Wait for SSH to come up
>>
>>       wait_for:
>>
>>         host: "{{ item.public_dns_name }}"
>>
>>         port: 22
>>
>>         delay: 60
>>
>>    timeout: 320
>>
>>         state: started
>>
>>       with_items: "{{ ec2.instances }}"
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Ansible Project" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> To view this discussion on the web visit https://groups.google.com/d/ms
>> gid/ansible-project/51b431bb-e0dd-4765-9051-cf5dbc8d624c%
>> 40googlegroups.com
>> <https://groups.google.com/d/msgid/ansible-project/51b431bb-e0dd-4765-9051-cf5dbc8d624c%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "Ansible Project" group.
> To unsubscribe from this topic, visit https://groups.google.com/d/
> topic/ansible-project/4twB7g9pdNk/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/ansible-project/CAKtKohSbX8%2B-1b0HmpUFkW-
> BksE4teRnSyvBbKCcoeu%3D4zUEzg%40mail.gmail.com
> <https://groups.google.com/d/msgid/ansible-project/CAKtKohSbX8%2B-1b0HmpUFkW-BksE4teRnSyvBbKCcoeu%3D4zUEzg%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/CALSWnawmPCBboRPvBSd4-6Ra%2Bkh76ajZonxd%3DQq%2Bs%3D%3Da4dxEsg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to