Hi,
I am having hard time figuring out idiomatic way of doing AWS
infrastructure deployment and application e.g. EC2 instance provisioning in
one go in same playbook. The problem being accessing EC2 host in the next
play after AWS infrastructure creation. The example playbook is as follows:
---
- name: Deploy cloud infrastructure
hosts: localhost
connection: local
gather_facts: False
vars:
aws_region: "us-east-1"
ssh_key_name: "MyAwsKey"
stack_name: "test-stack"
tasks:
- name: Create a sample stack
cloudformation:
stack_name: "{{ stack_name }}"
state: "present"
region: "us-east-1"
disable_rollback: true
template: "files/simple.template"
template_parameters:
KeyName: "{{ ssh_key_name }}"
register: cf
- name: Output EC2 IP
debug: var=cf.stack_outputs.PublicIP
# Try to install something to EC2
- name: Provision application
hosts: "{{ hostvars.localhost.cf.stack_outputs.PublicIP }}"
remote_user: "ubuntu"
sudo: yes
tasks:
- name: Just a test command
command: uptime
register: out
- debug: var=out.stdout
And output:
ok: [localhost] => {
"var": {
"cf.stack_outputs.PublicIP": "XXX.XXX.XXX.XXX"
}
}
PLAY [Provision application]
**************************************************
skipping: no hosts matched
My naive assumption was that consecutive play "Provision application" would
reference EC2 instance with hosts directive via registered variable e.g.
hostvars.localhost.cf.stack_outputs.PublicIP
which apparently does not work like I imagined.
So, the question is - what is the right way to approach this problem? I bet
I am missing something. I would prefer just one playbook that does both
cloud infrastructure deployment and server/application provisioning.
Thanks!
Juris
--
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/f111953b-8688-499c-af13-824e91c9f64d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.