Ir al contenido principal

Ansible using plugins for dynamic inventories


This is a small post about how to use inventory plugins in Ansible. If you are looking the script way I recommend to read this article: http://gloriasilveira.com/setting-up-ansible-for-aws-with-dynamic-inventory-ec2.html
It explains really good this or you can watch this video: https://www.youtube.com/watch?v=LnbqO1kTPqE&t=6s
But if you’re looking to use inventory this article can help you.
First of all, why should I used inventory if all over the internet they’re using the python scripts?
Well, Ansible recommends it:
Inventory plugins take advantage of the most recent updates to Ansible’s core code. We recommend plugins over scripts for dynamic inventory. You can write your own plugin to connect to additional dynamic inventory sources. https://docs.ansible.com/ansible/latest/user_guide/intro_dynamic_inventory.html
The actual ansible guide is quite good, but there was a step that got me confused, probably my english isn’t so good and I didn’t understood it.
We need to enable the plugin. So we have 2 ways of doing this, we could edit the ansible.cfg file located in /etc/ansible/ansible.cfg or in your local folder where you’re working.
Ansible Documentation
According to ansible, you need to enable the plugin, like the following code, but I was killing myself and couldn’t make it work, so what’s the correct way of doing it?
[inventory]
enable_plugins = host_list, script, auto, yaml, ini, toml
The way it works for me
I’m working with aws dynamic inventory. So according to the documentation the file name has to end in aws_ec2.(yml|yaml)
So I need to add the aws_ec2 to the enable plugins.
[inventory]
enable_plugins = aws_ec2, host_list, yaml, ini, script
After that, following the documentation is quite easy
File name: demo.aws_ec2.yml
# Minimal example using environment vars or instance role credentials
# Fetch all hosts in us-east-1, the hostname is the public DNS if it exists, otherwise the private IP address
plugin: aws_ec2
regions:
  - us-east-1
If you need to run it
ansible-inventory -i demo.aws_ec2.yml --graph
If you need to use it on a playbook, sending of parameter a private key
ansible-playbook -i demo.aws_ec2.yml playbook.yaml --private-key KEY

Comentarios

Entradas populares de este blog

Que buscaron los hondureños en Google en el 2017

Se han preguntando que buscan los catrachos en Internet? Les traemos un resumen de las busquedas de este 2017 en Honduras.

Actualizar de Ubuntu 14.04 a 16.04

Ya ha pasado vario tiempo, desde que estoy trabajando con la versión LTS Ubuntu 14.04, pero creo que ha llegado el tiempo de actualizar a la nueva versión LTS 16.04. Las principales razones, son que necesito trabajar con el nuevo kit de desarrollo de java 1.8 y no hay soporte oficial para la versión open source en 14.04. Aparte que nunca me sentí muy conforme con dicha versión, considero que hubieron anteriores mejores. Esta es una guía, que les permitirá migrar de Ubuntu 14.04 a 16.04. Paso 1: Aseguremos que estemos con las ultimas actualizaciones instaladas. Si tenemos una versión en español, saldría algo parecido a la imagen siguiente. Paso 2:  Abrimos la terminal, e insertamos el siguiente comando: sudo update-manager -d Saldra algo parecido a esta imagen. Le damos click al botón de actualizar. Nos aparecerá una ventana titulada "Notas de la versión" Despues de eso le damos click en actualizar. Después del botón de actualizar, nos aparecerá u

Pre order your Super Smash Bros. Ultimate for Nintendo Switch

Are you fan of Super Smash Bros! Don't wait until the last minute, you can pre order you Super Smash Bros Ultimate here This new game has stages and fighters are joined by the combined rosters of every past Super Smash Bros game. If you buy it, you will be enjoying this Limited Time Offer: Piranha Plant Playable Fighter. Buy Super Smash Bros. Ultimate and register your game with My Nintendo by 11:59 PM on Jan. 31, 2019 and get Piranha Plant in your game for free.