Hey Team,

I am having a little trouble with some of the AMI Ansible Modules.
Note: have only just started using Ansible 2.0+

It seems that when i use the ec2_ami_copy and ec2_ami(destroy) it is doing 
it in pairs of 3.
 - item=msg
 - item=changed
 - item=results

Just seeing if any of you have run into this issue and if anyone may know 
how to avoid making 3 copies of one image?

Thanks in advanced! 
-- see code and output below

Code Block:
#(This Creates 1 AMI) 
- name: Create an ami based off the ec2 instance
   ec2_ami:
     instance_id: "{{ item.id }}"
     region: "{{ ec2_region }}"
     wait: yes
     name: 'pre-{{ ami_image_type }}-{{ ec2_tag_Environment }}'
     tags:
       Name: 'base {{ ami_image_type }}'
       Environment: '{{ ec2_tag_Environment }}'
       Region: '{{ ec2_region }}'
   register: ami
   with_items: ec2.instances
   changed_when: ' "AMI creation operation complete" not in ami.msg'
   failed_when: '"AMI name already present" in ami.msg'

#(This takes the AMI i just crested and copies it to the east region, 
however, makes 3 copies of it)
 - name: create/duplicate ami image in us-east-1
   ec2_ami_copy:
    source_region: "{{ ec2_region }}"
    region: 'us-east-1'
    source_image_id: '{{ ami.results[0].image_id }}'
    name: 'ubuntu-{{ ec2_tag_Environment }}'
    tags:
      Name: 'core {{ami_image_type}}'
      Type: "{{ ami_image_type }}"
      Environment: "{{ ec2_tag_Environment }}"
    wait: yes
   register: image_east
   with_items: ami

#(This removes the original ami, however, failes because it tries to remove 
3 images)
 - name: remove pre-ami image
   ec2_ami:
     region: "{{ ec2_region }}"
     image_id: "{{ ami.results[0].image_id }}"
     delete_snapshot: True
     state: 'absent'
   with_items: ami


Debug and Errors:

**Create the AMI***
TASK [ami-configure : Create an ami based off the ec2 instance] 
****************
task path: 
/opt/jenkins/olab-ansible/ec2-blank/roles/ami-configure/tasks/main.yml:9
[DEPRECATION WARNING]: Using bare variables is deprecated. Update your 
playbooks so that the environment value uses the full variable syntax 
('{{ec2.instances}}').
This feature will be removed in a future
 release. Deprecation warnings can be disabled by setting 
deprecation_warnings=False in ansible.cfg.
ESTABLISH LOCAL CONNECTION FOR USER: jenkins
127.0.0.1 EXEC /bin/sh -c 'mkdir -p "` echo 
$HOME/.ansible/tmp/ansible-tmp-1457909749.51-1977756954142 `" && echo "` 
echo $HOME/.ansible/tmp/ansible-tmp-1457909749.51-1977756954142 `"'
127.0.0.1 PUT /tmp/tmpmUg_cy TO 
/opt/jenkins/.ansible/tmp/ansible-tmp-1457909749.51-1977756954142/ec2_ami
127.0.0.1 EXEC /bin/sh -c 'LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 
LC_MESSAGES=en_US.UTF-8 /usr/bin/python 
/opt/jenkins/.ansible/tmp/ansible-tmp-1457909749.51-1977756954142/ec2_ami; 
rm -rf "/opt/jenkins/.ansible/tmp/ansible-tmp-1457909749.51-1977756954142/" 
> /dev/null 2>&1'
ok: [localhost] => (item={u'kernel': None, u'root_device_type': u'ebs', 
u'private_dns_name': u'ip-10-3-0-242.us-west-1.compute.internal', 
u'public_ip': None, u'private_ip': u'10.3.0.242', u'id': u'i-9139fb24', 
u'ebs_optimized': False, u'state': u'running', u'virtualization_type': 
u'hvm', u'architecture': u'x86_64', u'ramdisk': None, 
u'block_device_mapping': {u'/dev/sda1': {u'status': u'attached', 
u'delete_on_termination': True, u'volume_id': u'vol-950e8628'}}, 
u'key_name': u'noc-staging', u'image_id': u'ami-1d25557d', u'tenancy': 
u'default', u'groups': {u'sg-4d13d228': u'default'}, u'public_dns_name': 
u'', u'state_code': 16, u'tags': {u'Environment': u'ops-staging', u'Type': 
u'base', u'Name': u'ami-test-estuble-1'}, u'placement': u'us-west-1b', 
u'ami_launch_index': u'0', u'dns_name': u'', u'region': u'us-west-1', 
u'launch_time': u'2016-03-13T22:54:18.000Z', u'instance_type': 
u'm3.medium', u'root_device_name': u'/dev/sda1', u'hypervisor': u'xen'}) => 
{"changed": false, "failed": false, "failed_when_result": false, 
"image_id": "ami-92d6a5f2", "invocation": {"module_args": 
{"aws_access_key": null, "aws_secret_key": null, "delete_snapshot": null, 
"description": "", "device_mapping": null, "ec2_url": null, "image_id": 
null, "instance_id": "i-9139fb24", "launch_permissions": null, "name": 
"pre-ubuntu-ops-staging", "no_reboot": false, "profile": null, "region": 
"us-west-1", "security_token": null, "state": "present", "tags": 
{"Environment": "ops-staging", "Name": "base ubuntu", "Region": 
"us-west-1"}, "validate_certs": true, "wait": true, "wait_timeout": "900"}, 
"module_name": "ec2_ami"}, "item": {"ami_launch_index": "0", 
"architecture": "x86_64", "block_device_mapping": {"/dev/sda1": 
{"delete_on_termination": true, "status": "attached", "volume_id": 
"vol-950e8628"}}, "dns_name": "", "ebs_optimized": false, "groups": 
{"sg-4d13d228": "default"}, "hypervisor": "xen", "id": "i-9139fb24", 
"image_id": "ami-1d25557d", "instance_type": "m3.medium", "kernel": null, 
"key_name": "noc-staging", "launch_time": "2016-03-13T22:54:18.000Z", 
"placement": "us-west-1b", "private_dns_name": 
"ip-10-3-0-242.us-west-1.compute.internal", "private_ip": "10.3.0.242", 
"public_dns_name": "", "public_ip": null, "ramdisk": null, "region": 
"us-west-1", "root_device_name": "/dev/sda1", "root_device_type": "ebs", 
"state": "running", "state_code": 16, "tags": {"Environment": 
"ops-staging", "Name": "ami-test-estuble-1", "Type": "base"}, "tenancy": 
"default", "virtualization_type": "hvm"}, "msg": "AMI creation operation 
complete", "state": "available"}

***Copy AMI***
 TASK [ami-configure : create/duplicate ami image in us-east-1] ***
task path: 
/opt/jenkins/olab-ansible/ec2-blank/roles/ami-configure/tasks/main.yml:66
[DEPRECATION WARNING]: Using bare variables is deprecated. Update your 
playbooks so that the environment value uses the full variable syntax 
('{{ami}}').
This feature will be removed in a future release.
Deprecation warnings can be disabled by setting deprecation_warnings=False 
in ansible.cfg.
ESTABLISH LOCAL CONNECTION FOR USER: jenkins
127.0.0.1 EXEC /bin/sh -c 'mkdir -p "` echo 
$HOME/.ansible/tmp/ansible-tmp-1457912054.53-185222114970372 `" && echo "` 
echo $HOME/.ansible/tmp/ansible-tmp-1457912054.53-185222114970372 `"'
127.0.0.1 PUT /tmp/tmpraK1rL TO 
/opt/jenkins/.ansible/tmp/ansible-tmp-1457912054.53-185222114970372/ec2_ami_copy
127.0.0.1 EXEC /bin/sh -c 'LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 
LC_MESSAGES=en_US.UTF-8 /usr/bin/python 
/opt/jenkins/.ansible/tmp/ansible-tmp-1457912054.53-185222114970372/ec2_ami_copy;
 
rm -rf 
"/opt/jenkins/.ansible/tmp/ansible-tmp-1457912054.53-185222114970372/" > 
/dev/null 2>&1'
changed: [localhost] => (item=msg) => {"changed": true, "image_id": 
"ami-4719f727", "invocation": {"module_args": {"aws_access_key": null, 
"aws_secret_key": null, "description": "", "ec2_url": null, "name": 
"ubuntu-ops-staging", "profile": null, "region": "us-west-2", 
"security_token": null, "source_image_id": "ami-92d6a5f2", "source_region": 
"us-west-1", "tags": {"Environment": "ops-staging", "Name": "Chef Ubuntu", 
"Type": "ubuntu"}, "validate_certs": true, "wait": true, "wait_timeout": 
"1200"}, "module_name": "ec2_ami_copy"}, "item": "msg", "msg": "AMI copy 
operation complete", "state": "available"}
127.0.0.1 EXEC /bin/sh -c 'mkdir -p "` echo 
$HOME/.ansible/tmp/ansible-tmp-1457912370.04-93363397180930 `" && echo "` 
echo $HOME/.ansible/tmp/ansible-tmp-1457912370.04-93363397180930 `"'
127.0.0.1 PUT /tmp/tmpVpxnYX TO 
/opt/jenkins/.ansible/tmp/ansible-tmp-1457912370.04-93363397180930/ec2_ami_copy
127.0.0.1 EXEC /bin/sh -c 'LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 
LC_MESSAGES=en_US.UTF-8 /usr/bin/python 
/opt/jenkins/.ansible/tmp/ansible-tmp-1457912370.04-93363397180930/ec2_ami_copy;
 
rm -rf 
"/opt/jenkins/.ansible/tmp/ansible-tmp-1457912370.04-93363397180930/" > 
/dev/null 2>&1'
changed: [localhost] => (item=changed) => {"changed": true, "image_id": 
"ami-1c19f77c", "invocation": {"module_args": {"aws_access_key": null, 
"aws_secret_key": null, "description": "", "ec2_url": null, "name": 
"ubuntu-ops-staging", "profile": null, "region": "us-west-2", 
"security_token": null, "source_image_id": "ami-92d6a5f2", "source_region": 
"us-west-1", "tags": {"Environment": "ops-staging", "Name": "Chef Ubuntu", 
"Type": "ubuntu"}, "validate_certs": true, "wait": true, "wait_timeout": 
"1200"}, "module_name": "ec2_ami_copy"}, "item": "changed", "msg": "AMI 
copy operation complete", "state": "available"}
127.0.0.1 EXEC /bin/sh -c 'mkdir -p "` echo 
$HOME/.ansible/tmp/ansible-tmp-1457912697.05-9517430380691 `" && echo "` 
echo $HOME/.ansible/tmp/ansible-tmp-1457912697.05-9517430380691 `"'
127.0.0.1 PUT /tmp/tmphKP3iB TO 
/opt/jenkins/.ansible/tmp/ansible-tmp-1457912697.05-9517430380691/ec2_ami_copy
127.0.0.1 EXEC /bin/sh -c 'LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 
LC_MESSAGES=en_US.UTF-8 /usr/bin/python 
/opt/jenkins/.ansible/tmp/ansible-tmp-1457912697.05-9517430380691/ec2_ami_copy; 
rm -rf "/opt/jenkins/.ansible/tmp/ansible-tmp-1457912697.05-9517430380691/" 
> /dev/null 2>&1'
changed: [localhost] => (item=results) => {"changed": true, "image_id": 
"ami-841ff1e4", "invocation": {"module_args": {"aws_access_key": null, 
"aws_secret_key": null, "description": "", "ec2_url": null, "name": 
"ubuntu-ops-staging", "profile": null, "region": "us-west-2", 
"security_token": null, "source_image_id": "ami-92d6a5f2", "source_region": 
"us-west-1", "tags": {"Environment": "ops-staging", "Name": "Chef Ubuntu", 
"Type": "ubuntu"}, "validate_certs": true, "wait": true, "wait_timeout": 
"1200"}, "module_name": "ec2_ami_copy"}, "item": "results", "msg": "AMI 
copy operation complete", "state": "available"}

***REMOVE AMI***
TASK [ami-cleanup : remove pre-ami image] 
**************************************
task path: 
/opt/jenkins/olab-ansible/ec2-blank/roles/ami-cleanup/tasks/main.yml:9
[DEPRECATION WARNING]: Using bare variables is deprecated. Update your 
playbooks so that the environment value uses the full variable syntax 
('{{ami}}').
This feature will be removed in a future release.
Deprecation warnings can be disabled by setting deprecation_warnings=False 
in ansible.cfg.
ESTABLISH LOCAL CONNECTION FOR USER: jenkins
127.0.0.1 EXEC /bin/sh -c 'mkdir -p "` echo 
$HOME/.ansible/tmp/ansible-tmp-1457913034.75-161819032042794 `" && echo "` 
echo $HOME/.ansible/tmp/ansible-tmp-1457913034.75-161819032042794 `"'
127.0.0.1 PUT /tmp/tmpFmOJaM TO 
/opt/jenkins/.ansible/tmp/ansible-tmp-1457913034.75-161819032042794/ec2_ami
127.0.0.1 EXEC /bin/sh -c 'LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 
LC_MESSAGES=en_US.UTF-8 /usr/bin/python 
/opt/jenkins/.ansible/tmp/ansible-tmp-1457913034.75-161819032042794/ec2_ami; 
rm -rf 
"/opt/jenkins/.ansible/tmp/ansible-tmp-1457913034.75-161819032042794/" > 
/dev/null 2>&1'
changed: [localhost] => (item=msg) => {"changed": true, "invocation": 
{"module_args": {"aws_access_key": null, "aws_secret_key": null, 
"delete_snapshot": "True", "description": "", "device_mapping": null, 
"ec2_url": null, "image_id": "ami-92d6a5f2", "instance_id": null, 
"launch_permissions": null, "name": null, "no_reboot": false, "profile": 
null, "region": "us-west-1", "security_token": null, "state": "absent", 
"tags": null, "validate_certs": true, "wait": false, "wait_timeout": 
"900"}, "module_name": "ec2_ami"}, "item": "msg", "msg": "AMI 
deregister/delete operation complete"}
127.0.0.1 EXEC /bin/sh -c 'mkdir -p "` echo 
$HOME/.ansible/tmp/ansible-tmp-1457913040.93-45535154371361 `" && echo "` 
echo $HOME/.ansible/tmp/ansible-tmp-1457913040.93-45535154371361 `"'
127.0.0.1 PUT /tmp/tmpbrWAUv TO 
/opt/jenkins/.ansible/tmp/ansible-tmp-1457913040.93-45535154371361/ec2_ami
127.0.0.1 EXEC /bin/sh -c 'LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 
LC_MESSAGES=en_US.UTF-8 /usr/bin/python 
/opt/jenkins/.ansible/tmp/ansible-tmp-1457913040.93-45535154371361/ec2_ami; 
rm -rf 
"/opt/jenkins/.ansible/tmp/ansible-tmp-1457913040.93-45535154371361/" > 
/dev/null 2>&1'
127.0.0.1 EXEC /bin/sh -c 'mkdir -p "` echo 
$HOME/.ansible/tmp/ansible-tmp-1457913046.65-256419645847339 `" && echo "` 
echo $HOME/.ansible/tmp/ansible-tmp-1457913046.65-256419645847339 `"'
failed: [localhost] (item=changed) => {"failed": true, "invocation": 
{"module_args": {"aws_access_key": null, "aws_secret_key": null, 
"delete_snapshot": "True", "description": "", "device_mapping": null, 
"ec2_url": null, "image_id": "ami-92d6a5f2", "instance_id": null, 
"launch_permissions": null, "name": null, "no_reboot": false, "profile": 
null, "region": "us-west-1", "security_token": null, "state": "absent", 
"tags": null, "validate_certs": true, "wait": false, "wait_timeout": 
"900"}, "module_name": "ec2_ami"}, "item": "changed", "msg": 
"InvalidAMIID.Unavailable: The image ID 'ami-92d6a5f2' is no longer 
available"}
127.0.0.1 PUT /tmp/tmpxT1iqz TO 
/opt/jenkins/.ansible/tmp/ansible-tmp-1457913046.65-256419645847339/ec2_ami
127.0.0.1 EXEC /bin/sh -c 'LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 
LC_MESSAGES=en_US.UTF-8 /usr/bin/python 
/opt/jenkins/.ansible/tmp/ansible-tmp-1457913046.65-256419645847339/ec2_ami; 
rm -rf 
"/opt/jenkins/.ansible/tmp/ansible-tmp-1457913046.65-256419645847339/" > 
/dev/null 2>&1'
failed: [localhost] (item=results) => {"failed": true, "invocation": 
{"module_args": {"aws_access_key": null, "aws_secret_key": null, 
"delete_snapshot": "True", "description": "", "device_mapping": null, 
"ec2_url": null, "image_id": "ami-92d6a5f2", "instance_id": null, 
"launch_permissions": null, "name": null, "no_reboot": false, "profile": 
null, "region": "us-west-1", "security_token": null, "state": "absent", 
"tags": null, "validate_certs": true, "wait": false, "wait_timeout": 
"900"}, "module_name": "ec2_ami"}, "item": "results", "msg": 
"InvalidAMIID.Unavailable: The image ID 'ami-92d6a5f2' is no longer 
available"}


Note: I have gotten around this by using the aws-cli instead but would 
prefer to stick with the Ansible modules when possible

-- 
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/3d8a0d27-e42f-4ea4-9b38-afc779770d7b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to