So i have a small problem, the only thing i have from the output of another tool is just an instance_id, along with its region. I need to grab some more information about the ec2 instance (such as the platform, tags, etc) in order to actually determine what inventory groups it belongs in.
Unfortunately i cannot figure out how to actually acquire facts about this through ansible.
The ec2 module seems to be soly for the purpose of creating ec2 instances, and attempting to pass in region, instance_id, and state=present results in errors, about image not being defined. (which i get since if the ec2 instance doesn’t exist it will create it).
ec2_remote_facts only seems to work with ec2 instance tags/values, and unfortunately i don’t have those.
ec2_facts actually requires me to connect to the ec2 instance and gather facts locally. (which i can’t do since i can’t figure out the actual public_ip of the instance).
Is there any other options/alternatives? (I know i can get it from the awscli tool and pipe the json into yaml and then into a variable, but that feels kind of gross).
If it's in your (dynamic) inventory, you might be able to do something
with with_dict and hostvars and when, because the instance ID is one of
the things in hostvars. I can try to put together an example if that makes
no sense or sounds hard.
-Josh (jbs@care.com)
This email is intended for the person(s) to whom it is addressed and may contain information that is PRIVILEGED or CONFIDENTIAL. Any unauthorized use, distribution, copying, or disclosure by any person other than the addressee(s) is strictly prohibited. If you have received this email in error, please notify the sender immediately by return email and delete the message and any attachments from your system.
Thanks. Unfortunately it is not part of my dynamic inventory.
Anisble runs a tool that provisions a bunch of ec2 instances, installs and configures a bunch of software on the systems (eventually this will be replaced by ansible i hope). The tool returns a series of instance ids and their regions to stdout. Unfortunately the tool does not properly tag the instances which means it can’t be discovered by my dynamic inventory, nor do the output instances follow any sort of logical naming convention.
What i would like to do is to:
- Get the metadata related to that instance id
- Add the host to an ansible group
- ssh into it, pull out some internal metadata about the server purpose
- tag it correspondingly
My use case is kind of really weird and super specific. Unfortunately
I ended up just creating an ansible module. Which is here if anyone runs into this issue in the future.
https://gist.github.com/fperks/475e3e58d60cef8fc922
Honestly i would really like this kind of functionality to be added the ec2_remote_facts.