Hello,

I am having some difficulties trying to obtain the instance id for an ec2 
instance that is being created. Here is what I have at the moment to create 
the ec2 instance:

### Create NAT Instance ###
- name: Launch NAT instance
  ec2:
    vpc_subnet_id: "{{ name_subnet.subnet.id }}"
    region: "{{ aws_region }}"
    keypair: "{{ keypair.key.name }}"
    group_id: "{{ natsecuritygroup.group_id }}"
    image: "{{ nat_aws_image }}"
    instance_type: "{{ nat_aws_instance_type }}"
    instance_tags:
      type: "nat"
      Name: "NAT"
    exact_count: 1
    count_tag:
      type: "nat"
      Name: "NAT"
    wait: yes
  register: nat
  tags:
    - vpcsetup

I am trying to get the instance id from the registered value nat. Here is 
what I get when I debug the nat variable:

ok: [localhost] => {
    "nat": {
        "changed": false, 
        "instance_ids": null, 
        "instances": [], 
        "tagged_instances": [
            {
                "ami_launch_index": "0", 
                "architecture": "x86_64", 
                "block_device_mapping": {
                    "/dev/xvda": {
                        "delete_on_termination": true, 
                        "status": "attached", 
                        "volume_id": "vol-xxxxxx"
                    }
                }, 
                "dns_name": "ec2-xxxxxxx.compute-1.amazonaws.com", 
                "ebs_optimized": false, 
                "groups": {
                    "sg-xxxxxx": "nat-sg"
                }, 
                "hypervisor": "xen", 
                "id": "i-xxxxxxxxxxxxxxxx", 
                "image_id": "ami-xxxxxxxxx", 
                "instance_type": "m4.large", 
                "kernel": null, 
                "key_name": "kp", 
                "launch_time": "2016-02-09T04:42:36.000Z", 
                "placement": "us-east-1a", 
                "private_dns_name": "ip-xxxxx.ec2.internal", 
                "private_ip": "xxxxx", 
                "public_dns_name": "ec2-xxxxx.compute-1.amazonaws.com", 
                "public_ip": "xxxxxx", 
                "ramdisk": null, 
                "region": "us-east-1", 
                "root_device_name": "/dev/xvda", 
                "root_device_type": "ebs", 
                "state": "running", 
                "state_code": 16, 
                "tags": {
                    "Name": "NAT", 
                    "type": "nat"
                }, 
                "tenancy": "default", 
                "virtualization_type": "hvm"
            }
        ]
    }
}

I see that the instance_ids is set to null, but there is a value for id. 
How do I get the id value? I tried several variations to get the value, but 
no luck. I keep getting an error saying either:

{"failed": true, "msg": "ERROR! 'list object' has no attribute 'id'"}

or

{"failed": true, "msg": "ERROR! 'dict object' has no attribute 'id'"}

Thanks in advance.

-- 
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/24e13834-b5ca-48a0-97a3-4278aba1dafb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to