Foreman & Puppet che controlla la versione


8

Ho appena installato Foreman per la prima volta e non sono sicuro di come mettere tutte le mie configurazioni sotto il controllo della versione. So di poter usare Git per ogni modulo che installo sul mio master Puppet ma preferirei una soluzione più olistica che comprenda non solo i moduli ma anche quali classi sono associate a ciascun host e tutte le variabili impostate sugli host. Qualsiasi suggerimento sarebbe molto apprezzato insieme ai flussi di lavoro correlati. Nel caso sia pertinente, ho GitLab installato come server Git centrale sul sito e ho intenzione di configurare presto un server CI come Jenkins.


hai trovato quello che cercavi? Sto ancora cercando un approccio completo alla gestione dei modelli e delle configurazioni di Foreman. Mgmt. Ho notato che questa domanda ha zero risposte accettate.
Harperville,

Risposte:


2

C'è un plugin per mantenere la definizione della tua infrastruttura in Foreman, praticamente una versione serializzata dei tuoi dati in Git e caricare (e cambiare la tua infrastruttura) le modifiche. Forse sarebbe utile per te

https://github.com/marianitadn/foregit


A prima vista, potrebbe essere esattamente quello che stavo cercando! Lo controllerò più presto e accetterò come risposta se lo è. Grazie!
GeneBean,


0

Non sono sicuro di aver compreso la tua domanda, ma ti sei imbattuto in "burattinaio di marionette" https://github.com/rodjek/librarian-puppet ? Lì puoi definire quali versioni / sha1 dei moduli fantoccio ti piacciono usare.


Informazioni molto utili (e qualcosa che molto probabilmente userò) ma non quello che sto cercando. Sto cercando di applicare la versione a tutte le cose fatte in Foreman e Puppet, non solo nei moduli. Ciò chiarisce ciò che sto cercando di fare?
GeneBean,

0

Nel caso in cui qualcuno lo legga in seguito: Con Puppet puoi definire quale versione del pacchetto / software vuoi installare con la dichiarazione "version => XYZ".

Gene, ho fatto del mio meglio ma ancora non capisco la tua domanda. Scusa per quella cosa :(


Nessun problema, apprezzo molto il tentativo.
GeneBean,

0

Penso che ciò che cerchi sia molto semplice.

Le configurazioni di Puppet sono presenti /etc/puppet. L'opzione più semplice è solo per eseguire

git init /etc/puppet/

puoi quindi aggiungere Gitlab come telecomando e spingerlo verso di esso.

In alternativa, potresti provare qualcosa di simile a quello che descrivo qui, che non è incentrato su Foreman, ma non vedo alcun motivo per cui non potresti usarlo come ispirazione.


0

Potresti anche considerare etckeeper, che lo fa automaticamente

Potresti persino scrivere un wrapper come

vi puppet_wrapper.sh

#!/bin/bash
# variables
ETCKEEPER=`which etckeeper`
ETCKEEPER_MSG=$1
PUPPET=`which puppet`
PUPPET_CMD=$2

# Msg would be your commit msg
etckeeper commit $ETCKEEPER_MSG

# PUPPET_CMD e.g. apply
puppet $PUPPET_CMD

ci sto lavorando da un po 'e va bene per le mie esigenze.


0

Penso che devi solo impostare un repository in git in cui ogni ramo del repository git verrà mappato su un ambiente fantoccio e quando vuoi cambiare qualcosa in fantoccio, basta clonare il repository, apportare modifiche e spingerlo nel ramo corrispondente. È inoltre necessario impostare un hook git che verrà attivato quando si inviano le modifiche al repository git in modo che aggiorni l'ambiente mappato sul server delle marionette. Puoi fare tutto questo manualmente o semplicemente attraverso questo modulo fantoccio.

https://github.com/theforeman/puppet-puppet

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.