productsupcom / ansible-dyninv-mysql
Este es un Inventario Dinámico para Ansible que se utiliza junto con MySQL.
Se escribió porque mantenemos una gran cantidad de servidores y los archivos de inventario estáticos no satisfacían nuestra demanda, y nos gusta MySQL.
Uso
Simplemente llama al script como el siguiente
ansible-playbook -i mysql.py# oransible -i mysql.py
Las limitaciones también funcionan
ansible-playbook -i mysql.py --limit foo.bar.comansible-playbook -i mysql.py --limit groupFoo
Configuración
No voy a explicar el proceso de instalación de una base de datos o la creación de las tablas, ver tables.sql
para la estructura requerida de MySQL.
Una vez configurado renombra mysql.ini.dist
a mysql.ini
para que se adapte a tus necesidades, si no quieres usar la caché solo ponlo en 0.
Grupos
En la tabla group
creas los grupos que necesites y sus variables,
Hosts
En la tabla host
bajo host
colocas la IP/DNS para el sistema.
Hechos
Debajo de hostname
se coloca un valor, este se presentará como variable inventory_hostname
durante la reproducción.Se puede modificar el nombre de esta variable Hechos cambiando la variable facts_hostname_var
en mi mysql.ini
.
Relación entre Hosts y Grupos
La tabla hostgroups
mapea la relación entre host
y group
utilizando dos FOREIGN KEYS
.
Hijos
Los grupos pueden tener otros grupos como hijos, utilice la tabla childgroups
.
Nota sobre las variables
Esto se aplica a host
y group
respectivamente.Si no se necesitan variables o bien se anula (MySQL real NULL
no el string
) o se utiliza {}
.
Leave a Reply