Hi Navid, what version of Ansible are you running? You might try using jinja2 braces around the ec2.instances variable in the with_items list, as there was a bug recently about variables like that not expanding properly (which should be fixed in 1.8.2).
On Thu, Dec 11, 2014 at 8:36 AM, Navid Paya <[email protected]> wrote: > Hi all > I'm trying to make some kind of automation to create an AMI out of an EC2 > instance. So I have this chunk that creates the instance: > > - name: Launch an Ubuntu 14.04 EC2 instance > hosts: localhost > connection: local > gather_facts: no > tasks: > - name: Find the latest Ubuntu AMI > ec2_ami_search: distro=ubuntu release=trusty region=ap-southeast-1 > store=ebs-ssd virt=hvm > register: ubuntu_image > - name: Start the new EC2 instance > ec2: > image: "{{ ubuntu_image.ami }}" > region: ap-southeast-1 > zone: ap-southeast-1b > instance_type: t2.small > vpc_subnet_id: xxxxxxxxxxxxxxxx > group_id: ['sg-xxxxxxxx', 'sg-xxxxxxx'] > key_name: random_key > wait: yes > wait_timeout: 500 > register: ec2 > - name: Add the new instance to host group > add_host: hostname={{ item.private_ip }} groupname=launched > with_items: ec2.instances > - name: Wait for SSH to come up on the new instance > wait_for: host={{ item.private_ip }} port=22 delay=60 timeout=320 > state=started > with_items: ec2.instances > > Then I try to use the instance and generate an AMI out of that: > > - name: Create an AMI from the provisioned instance > hosts: localhost > connection: local > gather_facts: no > tasks: > - ec2_ami: region=ap-southeast-1 instance_id={{ item.id }} wait=no > name=basebox-2000000 > with_items: > - ec2.instances > > - name: Delete the instance now that the AMI is created > hosts: localhost > connection: local > gather_facts: no > tasks: > - ec2: > region: ap-southeast-1 > instance_ids: "{{ item.id }}" > state: 'absent' > with_items: > - ec2.instances > > But I get errors like this: > > > TASK: [ec2_ami region=ap-southeast-1 instance_id={{ item.id }} wait=no > name=basebox-2000000] *** > fatal: [localhost] => One or more undefined variables: 'str object' has no > attribute 'id' > > I guess I'm missing something with iterating over a hash but can't figure > what. Any ideas? > > -- > 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/cc359c02-afd3-4c71-931d-7c5db8fde6a6%40googlegroups.com > <https://groups.google.com/d/msgid/ansible-project/cc359c02-afd3-4c71-931d-7c5db8fde6a6%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/CAMFyvFip1qw%2B_bFSB2YrOqHoMYPwEL%2B4%2Bgckj18Y_CnWkE3J5g%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
