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 ansible-project+unsubscribe@googlegroups.com.
To post to this group, send email to ansible-project@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/51b431bb-e0dd-4765-9051-cf5dbc8d624c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
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 }}"
--
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 ansible-project+unsubscribe@googlegroups.com.
To post to this group, send email to ansible-project@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/CAKtKohSbX8%2B-1b0HmpUFkW-BksE4teRnSyvBbKCcoeu%3D4zUEzg%40mail.gmail.com.
- instance_tags
a hash/dictionary of tags to add to the new instance or for starting/stopping instance by tag; '{"key":"value"}' and
'{"key":"value","key":"value"}'
[Default: None]
version_added: 1.0
A dictionary is represented in a simplekey: valueform (the colon must be followed by a space):
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.
To unsubscribe from this group and stop receiving emails from it, send an email to ansible-proje...@googlegroups.com.
To post to this group, send email to ansible...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/51b431bb-e0dd-4765-9051-cf5dbc8d624c%40googlegroups.com.
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 ansible-proje...@googlegroups.com.
To post to this group, send email to ansible...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/CAKtKohSbX8%2B-1b0HmpUFkW-BksE4teRnSyvBbKCcoeu%3D4zUEzg%40mail.gmail.com.
--
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 ansible-proje...@googlegroups.com.
To post to this group, send email to ansible...@googlegroups.com.