wouldn't ec2_asg do that automatically for you ?


On Fri, Jun 5, 2015 at 10:35 AM, Igor Cicimov <
[email protected]> wrote:

> Hi all,
>
> I've been looking for the best way to achieve what is mentioned in the
> title of the message but haven't found any. At least not one that will
> produce a satisfactory result which can be used further down in the same
> playbook.
>
> For example I've been testing the following loop:
>
>     - name: create instance
>       ec2: image="{{ images[item.0.region] }}"
>            keypair={{ keypair }}
>            instance_type={{ instance_type }}
>            instance_tags="{{ tags }}"
>            vpc_subnet_id={{ item.1.subnet }}
>            region={{ item.0.region }}
>            group_id={{ group_id }}
>            assign_public_ip=yes
>            wait=true
>            wait_timeout={{ wait_timeout }}
>       with_subelements:
>         - vpc
>         - subnets
>       when: item.0.name == ec2_env
>       register: ec2_info
>
> which does what I want, launches one instance per AZ in the chosen region,
> but the output registered is way too complicated to be of any use:
>
> TASK: [debug var=ec2_info]
> ****************************************************
> ok: [localhost] => {
>     "var": {
>         "ec2_info": {
>             "changed": true,
>             "msg": "All items completed",
>             "results": [
>                 {
>                     "changed": false,
>                     "skipped": true
>                 },
>                 {
>                     "changed": false,
>                     "skipped": true
>                 },
>                 {
>                     "changed": false,
>                     "skipped": true
>                 },
>                 {
>                     "changed": false,
>                     "skipped": true
>                 },
>                 {
>                     "changed": false,
>                     "skipped": true
>                 },
>                 {
>                     "changed": false,
>                     "skipped": true
>                 },
>                 {
>                     "changed": false,
>                     "skipped": true
>                 },
>                 {
>                     "changed": true,
>                     "instance_ids": [
>                         "i-xxxxxxxx"
>                     ],
>                     "instances": [
>                         {
>                             "ami_launch_index": "0",
>                             "architecture": "x86_64",
>                             "dns_name": "
> xxxxxxxx.eu-west-1.compute.amazonaws.com",
>                             "ebs_optimized": false,
>                             "groups": {
>                                 "sg-xxxxxxxx": "sg-xxxxxxxx"
>                             },
>                             "hypervisor": "xen",
>                             "id": "i-xxxxxxxx",
>                             "image_id": "ami-47a23a30",
>                             "instance_type": "t2.micro",
>                             "kernel": null,
>                             "key_name":"xxxxxxxx",
>                             "launch_time": "2015-06-05T02:48:14.000Z",
>                             "placement": "eu-west-1a",
>                             "private_dns_name":
> "xxxxxxxx.eu-west-1.compute.internal",
>                             "private_ip": "xxxxxxxx",
>                             "public_dns_name": "
> xxxxxxxx.eu-west-1.compute.amazonaws.com",
>                             "public_ip": "xxxxxxxx",
>                             "ramdisk": null,
>                             "region": "eu-west-1",
>                             "root_device_name": "/dev/sda1",
>                             "root_device_type": "ebs",
>                             "state": "running",
>                             "state_code": 16,
>                             "tags": {},
>                             "tenancy": "default",
>                             "virtualization_type": "hvm"
>                         }
>                     ],
>                     "invocation": {
>                         "module_args": "image=\"ami-47a23a30\"
> keypair=xxxxxxxx instance_type=t2.micro instance_tags=\"{'Environment':
> u'xxxxxxxx', 'Role': u'server', 'Type': 'type', 'Name':
> u'ec2-type-xxxxxxxx', 'Datacenter': u'xxxxxxxx'}\"
> vpc_subnet_id=subnet-xxxxxxxx region=eu-west-1 group_id=sg-xxxxxxxx
> assign_public_ip=yes wait=true wait_timeout=300",
>                         "module_name": "ec2"
>                     },
>                     "item": [
>                         {
>                             "cidr": "xxxxxxxx",
>                             "name": "xxxxxxxx",
>                             "region": "eu-west-1",
>                             "subnets_app": [
>                                 {
>                                     "subnet": "subnet-xxxxxxxx",
>                                     "zone": "eu-west-1a"
>                                 },
>                                 {
>                                     "subnet": "subnet-xxxxxxxx",
>                                     "zone": "eu-west-1b"
>                                 },
>                                 {
>                                     "subnet": "subnet-xxxxxxxx",
>                                     "zone": "eu-west-1c"
>                                 }
>                             ],
>                             "subnets_db": [
>                                 {
>                                     "subnet": "subnet-xxxxxxxx",
>                                     "zone": "eu-west-1a"
>                                 },
>                                 {
>                                     "subnet": "subnet-xxxxxxxx",
>                                     "zone": "eu-west-1b"
>                                 },
>                                 {
>                                     "subnet": "subnet-xxxxxxxx",
>                                     "zone": "eu-west-1c"
>                                 }
>                             ]
>                         },
>                         {
>                             "subnet": "subnet-xxxxxxxx",
>                             "zone": "eu-west-1a"
>                         }
>                     ],
>                     "tagged_instances": []
>                 },
>                 {
>                     "changed": true,
>                     "instance_ids": [
>                         "i-xxxxxxxx"
>                     ],
>                     "instances": [
>                         {
>                             "ami_launch_index": "0",
>                             "architecture": "x86_64",
>                             "dns_name": "
> xxxxxxxx.eu-west-1.compute.amazonaws.com",
>                             "ebs_optimized": false,
>                             "groups": {
>                                 "sg-xxxxxxxx": "sg-xxxxxxxx"
>                             },
>                             "hypervisor": "xen",
>                             "id": "i-xxxxxxxx",
>                             "image_id": "ami-47a23a30",
>                             "instance_type": "t2.micro",
>                             "kernel": null,
>                             "key_name":"xxxxxxxx",
>                             "launch_time": "2015-06-05T02:48:46.000Z",
>                             "placement": "eu-west-1b",
>                             "private_dns_name":
> "xxxxxxxx.eu-west-1.compute.internal",
>                             "private_ip": "xxxxxxxx",
>                             "public_dns_name": "
> xxxxxxxx.eu-west-1.compute.amazonaws.com",
>                             "public_ip": "xxxxxxxx",
>                             "ramdisk": null,
>                             "region": "eu-west-1",
>                             "root_device_name": "/dev/sda1",
>                             "root_device_type": "ebs",
>                             "state": "running",
>                             "state_code": 16,
>                             "tags": {},
>                             "tenancy": "default",
>                             "virtualization_type": "hvm"
>                         }
>                     ],
>                     "invocation": {
>                         "module_args": "image=\"ami-47a23a30\"
> keypair=xxxxxxxx instance_type=t2.micro instance_tags=\"{'Environment':
> u'xxxxxxxx', 'Role': u'server', 'Type': 'type', 'Name':
> u'ec2-type-xxxxxxxx', 'Datacenter': u'xxxxxxxx'}\"
> vpc_subnet_id=subnet-xxxxxxxx region=eu-west-1 group_id=sg-xxxxxxxx
> assign_public_ip=yes wait=true wait_timeout=300",
>                         "module_name": "ec2"
>                     },
>                     "item": [
>                         {
>                             "cidr": "xxxxxxxx",
>                             "name": "xxxxxxxx",
>                             "region": "eu-west-1",
>                             "subnets_app": [
>                                 {
>                                     "subnet": "subnet-xxxxxxxx",
>                                     "zone": "eu-west-1a"
>                                 },
>                                 {
>                                     "subnet": "subnet-xxxxxxxx",
>                                     "zone": "eu-west-1b"
>                                 },
>                                 {
>                                     "subnet": "subnet-xxxxxxxx",
>                                     "zone": "eu-west-1c"
>                                 }
>                             ],
>                             "subnets_db": [
>                                 {
>                                     "subnet": "subnet-xxxxxxxx",
>                                     "zone": "eu-west-1a"
>                                 },
>                                 {
>                                     "subnet": "subnet-xxxxxxxx",
>                                     "zone": "eu-west-1b"
>                                 },
>                                 {
>                                     "subnet": "subnet-xxxxxxxx",
>                                     "zone": "eu-west-1c"
>                                 }
>                             ]
>                         },
>                         {
>                             "subnet": "subnet-xxxxxxxx",
>                             "zone": "eu-west-1b"
>                         }
>                     ],
>                     "tagged_instances": []
>                 },
>                 {
>                     "changed": true,
>                     "instance_ids": [
>                         "i-xxxxxxxx"
>                     ],
>                     "instances": [
>                         {
>                             "ami_launch_index": "0",
>                             "architecture": "x86_64",
>                             "dns_name": "
> xxxxxxxx.eu-west-1.compute.amazonaws.com",
>                             "ebs_optimized": false,
>                             "groups": {
>                                 "sg-xxxxxxxx": "sg-xxxxxxxx"
>                             },
>                             "hypervisor": "xen",
>                             "id": "i-xxxxxxxx",
>                             "image_id": "ami-47a23a30",
>                             "instance_type": "t2.micro",
>                             "kernel": null,
>                             "key_name":"xxxxxxxx",
>                             "launch_time": "2015-06-05T02:49:14.000Z",
>                             "placement": "eu-west-1c",
>                             "private_dns_name":
> "xxxxxxxx.eu-west-1.compute.internal",
>                             "private_ip": "xxxxxxxx",
>                             "public_dns_name": "
> xxxxxxxx.eu-west-1.compute.amazonaws.com",
>                             "public_ip": "xxxxxxxx",
>                             "ramdisk": null,
>                             "region": "eu-west-1",
>                             "root_device_name": "/dev/sda1",
>                             "root_device_type": "ebs",
>                             "state": "running",
>                             "state_code": 16,
>                             "tags": {},
>                             "tenancy": "default",
>                             "virtualization_type": "hvm"
>                         }
>                     ],
>                     "invocation": {
>                         "module_args": "image=\"ami-47a23a30\"
> keypair=xxxxxxxx instance_type=t2.micro instance_tags=\"{'Environment':
> u'xxxxxxxx', 'Role': u'server', 'Type': 'type', 'Name':
> u'ec2-type-xxxxxxxx', 'Datacenter': u'xxxxxxxx'}\"
> vpc_subnet_id=subnet-xxxxxxxx region=eu-west-1 group_id=sg-xxxxxxxx
> assign_public_ip=yes wait=true wait_timeout=300",
>                         "module_name": "ec2"
>                     },
>                     "item": [
>                         {
>                             "cidr": "xxxxxxxx",
>                             "name": "xxxxxxxx",
>                             "region": "eu-west-1",
>                             "subnets_app": [
>                                 {
>                                     "subnet": "subnet-xxxxxxxx",
>                                     "zone": "eu-west-1a"
>                                 },
>                                 {
>                                     "subnet": "subnet-xxxxxxxx",
>                                     "zone": "eu-west-1b"
>                                 },
>                                 {
>                                     "subnet": "subnet-xxxxxxxx",
>                                     "zone": "eu-west-1c"
>                                 }
>                             ],
>                             "subnets_db": [
>                                 {
>                                     "subnet": "subnet-xxxxxxxx",
>                                     "zone": "eu-west-1a"
>                                 },
>                                 {
>                                     "subnet": "subnet-xxxxxxxx",
>                                     "zone": "eu-west-1b"
>                                 },
>                                 {
>                                     "subnet": "subnet-xxxxxxxx",
>                                     "zone": "eu-west-1c"
>                                 }
>                             ]
>                         },
>                         {
>                             "subnet": "subnet-xxxxxxxx",
>                             "zone": "eu-west-1c"
>                         }
>                     ],
>                     "tagged_instances": []
>                 },
>                 {
>                     "changed": false,
>                     "skipped": true
>                 },
>                 {
>                     "changed": false,
>                     "skipped": true
>                 }
>             ]
>         }
>     }
> }
>
> So, any idea how to make this usable? Or maybe share your experience if
> you have already done it?
>
> Thanks,
> Igor
>
> --
> 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/b27240c8-42c5-44ec-8549-d99990fd2d1f%40googlegroups.com
> <https://groups.google.com/d/msgid/ansible-project/b27240c8-42c5-44ec-8549-d99990fd2d1f%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 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/CAFUV_d4SRqMBiCYnckhxyTdkCyYVvNxar34_%3DKa7UR5UAuMvuw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to