💾 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

View Raw

More Information

⬅️ Previous capture (2023-01-29)

🚧 View Differences

-=-=-=-=-=-=-

Ansible/AWX tools

las migraciones generan utilidades

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` :)

mirá mamá! *AWX* sin hacer clics!

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

RTFM

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á...

ChangeLog

1: https://www.nube.coop/

2: https://gitlab.com/osiux/osiux.gitlab.io/-/commit/bf3a61526ad2a73cecb77a18995f1d63494e3664

3: https://gitlab.com/osiux/osiux.gitlab.io/-/commit/0d91f02c093c831708f06fe91c44e46dd49d9e9f