I am trying to create a playbook which does the following:
- creates an image of an AWS instance
- copies the image to a different region
- installs updates to the instance
I can do all of this apart from getting the AMI to copy to a different
region. I've tried a few things but this is my current playbook (this is
only for the AMI creation and copying, installing updates is handled
separately).
- hosts: webservers
remote_user: ubuntu
tasks:
- name: create an ami
ec2_ami:
region: eu-west-2
instance_id: i-0771a2e4289c057e9
name: "{{ inventory_hostname }}-{{
ansible_date_time.iso8601_basic_short }}"
tags:
Name: "{{ inventory_hostname }}-{{
ansible_date_time.iso8601_basic_short }}"
- name: set ID name
set_fact:
new_ami_name: ec2_ami.image_id
- pause:
seconds: 60
- name: copy AMI to a different region
ec2_ami_copy:
source_region: eu-west-2
source_image_id: "{{ new_ami_name }}"
name: "{{ new_ami_name }}"
region: eu-west-1
For which the creation, setting fact, and pause work, but on the last part
I get this error output:
An exception occurred during task execution. To see the full traceback, use
-vvv. The error was: ClientError: An error occurred (InvalidAMIID.Malformed)
when calling the CopyImage operation: Invalid id: "ec2_ami.image_id" (expecting
"ami-...")
I've tried a few different things I'm fairly new to Ansible, but basically
I can't figure out how to pass the image_id of the newly created AMI to the
next play so that it can use this as the basis of the copying.
I can see clearly that it's not registering the image_id as it's saying
it's not in the expected "ami-" format, but I'm stuck from there.
--
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/32025477-6da6-4087-892b-44a4609dd5d4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.