💾 Archived View for gmi.osiux.com › 2021-02-05-ansible-awx-tools.gmi captured on 2023-03-20 at 17:55:30. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-01-29)
-=-=-=-=-=-=-
En 2015, producto de una migración de servidores descubrí *Ansible* como herramienta de automatización de la configuración e instalación de servicios, en esa instancia el proyecto era migrar los servicios de un *ISP* a una nueva infraestructura nube.coop[1].
Y como no podía ser de otra manera, fui construyendo una serie de *scripts* para automatizar tareas rutinarias, de ese proyecto entre otras tantas utilidades varios grupos de *scripts* y roles de *Ansible*, en otro momento voy a escribir sobre `ispconfig-utils`, pero ahora quiero hacerlo sobre `ansible_tools` que tomaron fuerza en los últimos dos años inmerso en otro proyecto de migración, esta vez liberando servidores físicos y virtuales, ademas de puestos de trabajo del lado oscuro de la fuerza hacia `GNU/Linux` :)
Luego de varias pruebas de concepto, muchos roles y *playbooks* desarrollados (unos 120 repositorios `git` al día de hoy), la herramienta de *deploy* naturalmente es *AWX* que da mucho de que hablar de ella, pero ahora quiero concentrarme en las utilidades que fui construyendo para dialogar con *AWX* desde a consola y evitar clics.
# ls -1 awx-* | grep -v .md | cut -d- -f2 | uniq -c | sort -nr 22 json 22 adhoc 13 inventory 13 host 6 version 6 project 6 job 5 workflow 5 grant 3 setting 2 group 1 user 1 team 1 shell 1 pass 1 organization 1 help 1 config 1 common
Todavía me falta pulir un poco el "manual" para que sea usable por terceros, pero algo que me ayudó fue definir una función `usage` en cada *script* de la siguiente manera:
function usage() { cat << EOF Usage: $BIN Description EOF exit 0 } [[ "$1" =~ ^[-]+(h|help) ]] && usage
Entonces al ejecutar el *script* con `-h` o `--help`, se muestra la ayuda de ese comando y para generar un "manual" de todos los comandos simplemente los invoco y capturo la salida a un único archivo.
Ni bien este mas o menos completo estaré publicando el repositorio con todos los *scripts* y con algunos ejemplos de uso.
...continuará...
2: https://gitlab.com/osiux/osiux.gitlab.io/-/commit/bf3a61526ad2a73cecb77a18995f1d63494e3664
3: https://gitlab.com/osiux/osiux.gitlab.io/-/commit/0d91f02c093c831708f06fe91c44e46dd49d9e9f