Ansible Tools v0.3.0
index | about | archive | charlas | docs | links
dot
|
git
|
img
|
plt
|
tty
|
uml
aniversario! 🎂
Hoy 2022-10-03 se cumplen exactamente 3 años desde el primer
commit del repo ansible_tools
1, y me ocupé de
versionar una serie de scripts que tenía dando vueltas para aprovechar
la ocasión :)
todo comenzó algún tiempo atrás…
Viendo el historial recordé cómo fue que todo comenzó, básicamente
estaba lidiando con la molesta tarea de actualizar la version
de cada
rol en el archivo requirements.yml
de un gran playbook de
ansible
2, y como eran demasiados roles
cada uno en en un
repositorio diferente, era muy engorroso estar viendo cuál era el último
release y realizar el cambio.
v0.1.0 requirements-version-update
Si definimos como tarea «actualizar la versión de cada rol al último tag disponible» es algo que se puede automatizar fácilmente. Bastó con dividir la tarea en 2 para rápidamente obtener un resultado exitoso.
Primero generé git-ls-remote-tags
que no hace otra cosa que listar los
tags
del repositorio actual de forma cronológica de modo que al
quedarse con el primer resultado, obtenemos el último tag.
Luego fue simplemente leer el YAML e ir reescribiéndolo con lo mismo
pero reemplazando version
con el último tag.
Y este script no solo permitió ahorrar tiempo, lo mejor fue ahorrar dolores de cabeza, luego con una revisión manual bastaba para ajustar alguna dependencia en particular (no siempre se desea la última versión).
v0.1.1 - v0.1.6
parches y mejoras
Hubo pequeñas mejoras y parches, aunque apareció otra necesidad, la de
reescribir el origen de cada repositorio, básicamente convertir un
repo ssh
a una url https
, y esto fue necesario para clonar
repositorios en una red sin acceso por SSH.
v0.1.7
envolviendo awx-cli
Si bien el cli
de AWX 3 es muy completo, me vi con la
necesidad de extender ciertas funcionalidades, mayormente agregar
validaciones y automatizar algunas tareas repetitivas de ad-hoc
,
asignaciones de permisos, obtener valores de variables de hosts e
inventories y comenzar a recibir y enviar un job_template de un
entorno a otro.
v0.1.8
encerar y pulir
Variedad de scripts pero mayormente hay cierta cosmética general, se
comienzan a unificar criterios y muchas mejoras gracias a las
sugerencias de shellcheck
4.
v0.2.0
happy gnu year
Aprovecho el año nuevo para comenzar versionando para la posteridad una
serie de mejoras y nuevas funcionalidades para que no se pierdan al irme
de vacaciones XD
v0.3.0
automated deploy
La mayor novedad es la posibilidad de generar un deploy desatendido
del repositorio awx
donde están todos los recursos en forma de
.json
, basta con ejecutar awx-deploy-revision
(con mínimas opciones)
y este script se ocupa de todo :)
Relacionado al deploy= ahora se puede generar un sumario de los
releases
en base a los tags y también se agregan varias utilidades
para obtener y actualizar variables de archivos YAML y algunas para
realizar comparaciones de variables entre diferentes groups de un
mismo inventory, esto resultó muy útil para unificar valores y mejorar
la precedencia.
Otros comandos útiles permiten lidiar con las diferentes formas de
escribir una variable vault
Creación y modificación de credenciales ssh
cifradas desde un
repositorio pass
o desde archivos en el directorio ~/.ssh/
.
mejora continua
Hace 3 años no hubiese imaginado que las ansible tools
se iban a
convertir en mas de 270 scripts de uso diario y que hoy las considero
indispensables para interacturar con GitLab y AWX.
Seguramente, irán mejorando y en algún momento habrá que dar el salto a nuevas versiones de AWX y nuevas integraciones.
ChangeLog
2023-05-01 11:27
corregir imagen en Ansible Toolsv0.3.0
2023-05-01 10:28
agregar DESCRIPTION, KEYWORDS y actualizar OpenGraph en Ansible Tools v0.3.02022-11-13 20:39
agregar y actualizar tags OpenGraph2022-10-03 19:24
agregar Ansible Toolsv0.3.0