-- Leo's gemini proxy
-- Connecting to gmi.osiux.com:1965...
-- Connected
-- Sending request
-- Meta line: 20 text/gemini;lang=es_AR
AUTHOR: Osiris Alejandro Gomez
EMAIL: osiux@osiux.com
DATE: 2023-03-07 23:50
[1]
Hoy falló un *deploy*, de esos que hay que hacer por las noches y que obvio, al fallar hay que ver de corregirlo o deshacer todo aunque en este caso no basta con presionar `CTRL-Z`, es un poquito más complejo!
Cuando miro los *logs* buscando el error, detecto algo que nunca antes sucedió en las pruebas de este *release*, rarísimo, al investigar un poco más doy con el error, por algún motivo el *job~template~* de [AWX]{.underline} clonó la versión `v0.4.0` de un *repo* en lugar de la `0.7.2` *WTF!*
Yo recordaba que la variable global para el entorno productivo estaba definida como `master` y *NO* podía fallar, debía clonar la última versión estable, pero realizando un `diff` veo que la variable `freeipa_sssd_tools_git_version` no estaba definida en *PRD* y sin embargo si estaba globalmente con el valor `v0.4.0`
Pero si la última vez, *deployamos* `master` (en ese momento `v0.6.1`), entonces qué sucedió?
Recordé que hace un tiempo hice el *script* `git-find-value` que permite buscar un valor en un archivo de un *repo* `git` y mostrar qué valor tenía en cada `tag`, en este caso fue claro, no hubo duda alguna, globalmente en el inventario nunca estuvo definido como `master` `:(`
# git-find-value freeipa_sssd_tools_git_version group_vars/all.yml v0.7.1 freeipa_sssd_tools_git_version: v0.3.0 v0.7.2 freeipa_sssd_tools_git_version: v0.3.0 v0.7.3 freeipa_sssd_tools_git_version: v0.3.0 v0.7.4 freeipa_sssd_tools_git_version: v0.4.0 v0.7.5 freeipa_sssd_tools_git_version: v0.4.0 v0.7.6 freeipa_sssd_tools_git_version: v0.4.0 v0.7.7 freeipa_sssd_tools_git_version: v0.4.0
Y en *PRD* si estuvo como `master`, pero en los *tags* `v0.7.6` y `v0.7.7`, y justamente hoy estaba estrenando *tag* `v0.7.8`
# git-find-value freeipa_sssd_tools_git_version group_vars/prd.yml v0.7.6 freeipa_sssd_tools_git_version: master v0.7.7 freeipa_sssd_tools_git_version: master
Un simple `git diff` entre 2 *tags* y pude ver dónde perdí algunas variables, las pasé por alto, porque el enfoque estaba en otro cambio más trascendental.
Gracias a comandos como `git-find-value` ^1[2] puedo rápidamente resolver conflictos sin perder tiempo en la web, buscando como resolver algo puntual que es poco frecuente y que seguro olvidaré rápidamente, éste y otros *scripts* de `git` están disponibles en `git-bash-utils` ^2[3]
Para resolver éste error y otros menores, tuve que generar varios *releases* de varios *repos* y esto lo pude resolver rápidamente gracias a otros *scripts* de `Ansible Tools` ^3[4] y `GitLab Bash Utils` ^4[5] para obtener finalmente un *deploy* como estaba planeado, sin errores y garantizando que todos los cambios estén versionados!
Cómo migrar 6300 equipos a GNU/Linux usando Ansible y AWX[6]
Automatizar la implementación de los recursos de AWX con GitLab CI/CD y Ansible Tools[7]
cómo usar *GitLab* desde la línea de comandos[8]
Ansible/AWX tools[9]
`2023-03-07 23:39`[10] agregar *find value in all git tags using `git-find-value`*
-- Response ended
-- Page fetched on Fri May 17 02:34:05 2024