Any clue as to how to accomplish this?
My Ansible Tower inventory has a list of hosts in it, all in 'stopped'
state.
I'd like to use that inventory, assign it to a playbook, that will loop
through each machine in the inventory, from the *localhost*, and issue a
command to start the instance to AWS.
I've tried several different ways to do this, but to no avail.
It seems that because I'm specifying an inventory to the job, and that
inventory only has stopped instances in it, there's no way to execute a
task on the localhost, loop through that inventory, and start them, one by
one?
Here is some code that contains all the different lines I've tried...
---
- name: Start EC2 Instances
hosts: localhost # also tried 'all' here
connection: local
gather_facts: false
tasks:
- name: inventory_hostname var
debug:
msg: "{{ hostvars[inventory_hostname] }}"
with_inventory_hostnames: all
delegate_to: localhost
- name: hostvars item
debug:
msg: "{{ hostvars[item] }}"
with_inventory_hostnames: all
delegate_to: localhost
- name: Start EC2 Instances Task
ec2_instance: running
local_action:
module: ec2
instance_ids={{hostvars[inventory_hostname]['ec2_id']}}
region="{{ region | default('us-east-1') }}"
state=running
when: hostvars[item]['ec2_id'] is defined
with_inventory_hostnames: all
delegate_to: localhost
--
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/1d1106b3-407a-42b1-a0ae-290e539a19ab%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.