Puesta en producción de un servicio con Ansible » History » Version 1

Santiago Martinez, 10/16/2019 07:03 PM
Protocolo de puesta en producción

1 1 Santiago Martinez
h1. Puesta en producción de un servicio con Ansible
2 1 Santiago Martinez
3 1 Santiago Martinez
Poner en producción un servicio mediante playbooks y roles que conforman el proyecto "config":https://git.interior.edu.uy/adminsys/config, es la culminación de un largo proceso que en condiciones normales inició con la apertura de un issue y pasó por la exploración de opciones, intercambio con compañeros de equipo y pruebas (muchas pruebas).
4 1 Santiago Martinez
5 1 Santiago Martinez
Esta breve entrada de la wiki busca protocolizar esta etapa final, para registrar cierta información de utilidad futura.
6 1 Santiago Martinez
7 1 Santiago Martinez
Normalmente, automatizar el montaje y aprovisionamiento de un nuevo servicio a través de nuestro proyecto Ansible consiste de dos elementos principales: una conjunto de modificaciones al proyecto *config* en sí (playbook/s, host_vars, inventario, etc) y la incorporación de, al menos, un role encargado de aprovisionar lo relativo al servicio en cuestión.
8 1 Santiago Martinez
9 1 Santiago Martinez
Considerando que en muchas ocasiones se llevan a producción varias instancias de un mismo servicio, mejorando detalles y agregando características en cada iteración a roles y playbooks, es de mucha utilidad contar con un registro de desde "dónde" fue aprovisionado cada uno. De este modo, ante la necesidad de depurar el comportamiento de un servicio para solucionar errores, podremos saber exactamente como fue creado y configurado, aunque posteriormente se haya sumado mejoras al código.
10 1 Santiago Martinez
11 1 Santiago Martinez
Una *forma práctica e inequívoca de hacerlo es documentar el _hash_ del _commit_* correspondiente a la versión de *config* y de los roles independietes (versionados fuera del repositorio config) que intervinieron al lanzar la ejecución Ansible. *El mejor lugar para documentar estos _hashes_ es como un nuevo comentario al dar por finalizado el issue que motivó la tarea*. Y es precisamente éste el procedimiento que buscamos naturalizar, con el fin tener disponible rápidamente esta información para todos los servicios.