Hi Will,

I knew it was something obvious! 
It is working much better now.

Thank you very much.

Fred


On Apr 7, 2014, at 23:42 , Will Thames <will@> wrote:

> Hi, 
> 
> "fatal: [127.0.0.1] => One or more undefined variables: 'list' object has no 
> attribute 'private_ip'"
> 
> That's because ec2_info.instances is a list, not a dict.
> 
> If you use ec2_info.instances[0] you'll get the first (and in your case only) 
> instance returned by ec2 (which can create multiple instances)
> 
> So ec2_info.instances[0].private_ip will get you what you're after.
> 
> Will
> 
> On Monday, April 7, 2014 10:45:00 PM UTC+10, Fred Badel wrote:
> Hello,
> 
> I am sure that I miss something obvious... but after having tried for a few 
> hours, I just don't know where to look for a solution ...
> 
> I have the following playbook to create a new amazon instance and do a few 
> things with it.
> The instance is created correctly, but when I try to access to 
> ec2_info.instances. private_ip variables, the playbook fail with an undefined 
> variable error ...
> 
> Does any one have an idea?
> 
> Many thanks in advance.
> 
> Fred
> 
> ** playbook:
> ---
> - hosts: 127.0.0.1
>   connection: local
>   gather_facts: True
>   vars:
>       keypair: mykey
>       dnsdomain: aws.domain.com
>       fqdn: "{{ hostname }}.{{ dnsdomain }}"
> 
>   tasks:
>       - name: create a vm
>         local_action:
>             ec2_url: https://ec2.eu-west-1.amazonaws.com
>             module: ec2
>             image: ami-75342c01
>             count: 1
>             instance_type: m1.large
>             group:
>                 - J2EE
>                 - default
>             key_name: "{{ keypair }}"
>             vpc_subnet_id: subnet
>             user_data: "{{ hostname }}.{{ dnsdomain }}"
>             instance_tags: '{ "QA": "group", "Name": "{{ hostname }}" }'
>             volumes:
>                 - device_name: /dev/sda1
>                   volume_size: 10
>                 - device_name: /dev/sdb
>                   ephemeral: ephemeral0
>                 - device_name: /dev/sdc
>                   volume_size: 25
>             wait: true
>             wait_timeout: 500
>             state: present
>         register: ec2_info
> 
>       - name: register DNS name
>         command: dnsupdate.py -s localhost -k Kddnsupdate.key -x add {{ fqdn 
> }} 300 A {{ ec2_info.instances.private_ip }}
>         sudo: yes
>         remote_user: user
>         delegate_to: dns_server
> 
>       - name: add new instance to inventory
>         add_host: name={{ hostname }} groups=ci hostname={{ fqdn }} 
> ansible_ssh_host={{ ec2_info.instances.private_ip }} 
> ansible_ssh_private_key_file=~/.ssh/{{ keypair }}.pem
> 
>       - name: wait for instance to start
>         wait_for: state=started host={{ ec2_info.instances.private_ip }} 
> port=22
> 
> ** error message:
> 
> TASK: [register DNS name] 
> *****************************************************
> fatal: [127.0.0.1] => One or more undefined variables: 'list' object has no 
> attribute 'private_ip'
> 
> FATAL: all hosts have already failed -- aborting
> 
> ** with a "debug=ec2_info.instances":
> 
>     "ec2_info.instances": [
>         {
>             "ami_launch_index": "0",
>             "architecture": "x86_64",
>             "dns_name": "",
>             "hypervisor": "xen",
>             "id": "i-d43324",
>             "image_id": "ami-7",
>             "instance_type": "m1.large",
>             "kernel": "aki-54425520",
>             "key_name": "ContinuousQA",
>             "launch_time": "2014-04-07T12:30:29.000Z",
>             "placement": "eu-west-1b",
>             "private_dns_name": "ip-172-16-4-127.aws.domain.com",
>             "private_ip": "172.16.4.127",
>             "public_dns_name": "",
>             "public_ip": null,
>             "ramdisk": null,
>             "region": "eu-west-1",
>             "root_device_name": "/dev/sda1",
>             "root_device_type": "ebs",
>             "state": "running",
>             "state_code": 16,
>             "virtualization_type": "paravirtual"
>         }
>     ]
> }
> 
> -- 
> 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/d9a3bbf5-c30c-4960-879a-e411d662d5c2%40googlegroups.com.
> 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/12372BE3-5434-46A4-9EE4-DF6280C85E3B%40never-mind.ch.
For more options, visit https://groups.google.com/d/optout.

Reply via email to