Acabo de configurar Foreman por primera vez y no estoy seguro de cómo poner todas mis configuraciones bajo control de versión. Sé que puedo usar Git para cada módulo que instalo en mi Puppet master, pero preferiría una solución más holística que abarque no solo los módulos, sino también qué clases están asociadas con cada host y cualquier variable establecida en los hosts. Cualquier sugerencia sería muy apreciada junto con los flujos de trabajo relacionados. En caso de que sea relevante, tengo la configuración de GitLab como un servidor Git central en el sitio y planeo configurar un servidor CI como Jenkins pronto.
8
Respuestas:
Hay un complemento para mantener su definición de infraestructura en Foreman, más o menos una versión serializada de sus datos en Git, y cargar (y cambiar su infraestructura) los cambios. Tal vez eso sea útil para ti
https://github.com/marianitadn/foregit
fuente
Con foreman, debería poder ver todas las clases junto con cualquier variable de configuración asignada en los detalles del host. Ver: http://theforeman.org/manuals/1.4/index.html .
fuente
No estoy seguro si entiendo su pregunta, pero ¿se encontró con "bibliotecario de marionetas" https://github.com/rodjek/librarian-puppet ? Allí puede definir qué versiones / sha1 de los módulos de marionetas le gusta usar.
fuente
En caso de que alguien lea esto más tarde: con Puppet puede definir qué versión de paquete / software desea instalar con la declaración "version => XYZ".
Gene, hice todo lo posible pero aún no recibo tu pregunta. Lo siento por eso :(
fuente
Creo que lo que buscas es muy simple.
Las configuraciones de Puppet están en
/etc/puppet
. La opción más simple es simplemente ejecutargit init /etc/puppet/
luego puede agregar Gitlab como control remoto y presionarlo.
Alternativamente, podría intentar algo como lo que describo aquí que no está centrado en Foreman, pero no veo ninguna razón por la que no pueda usarlo como inspiración.
fuente
También puede considerar etckeeper, que lo hace automáticamente
Incluso podrías escribir una envoltura como
vi puppet_wrapper.sh
Estoy trabajando con esto por un tiempo y está bien para mis necesidades.
fuente
Creo que solo necesita configurar un repositorio en git donde cada rama del repositorio de git se asignará a un entorno de títeres y cuando desee cambiar algo en títere, simplemente clone el repositorio, realice cambios y empújelo a la rama correspondiente. También debe configurar un gancho de git que se activará cuando envíe sus cambios al repositorio de git para que actualice el entorno mapeado en el servidor de marionetas. Puede hacer todo esto manualmente o solo a través de este módulo de marionetas.
https://github.com/theforeman/puppet-puppet
fuente