Usando git per gestire / etc?


14

Sto pensando a un sistema, dove /etcsono stati tracciati su un repository git remoto. Sto pensando a un flusso di lavoro git, in cui ogni macchina host ha un ramo diverso.

Tutte le versioni precedenti su ogni macchina potevano essere facilmente rintracciate, confrontate, unite.

Se una /etcmodifica dovesse essere impegnata su molte macchine, potrebbe essere facilmente eseguita da alcuni script di fusione.

In caso di una modifica "indesiderata" /etc, questo potrebbe essere ben visibile (anche gli script di allarme potrebbero essere sintonizzati per guardarlo).

Qualcuno ha già usato una tale configurazione? Ci sono problemi di sicurezza con esso?


6
C'è etckeeperche è già utilizzato su molti sistemi. Non offre tutte le funzionalità richieste. Ad esempio ha un repository per host, non uno centrale.
Jofel,

Quali file ti interessano o quali file sono stati modificati in modo indesiderato in passato? Lo chiedo perché penso che Git non sia il modo giusto per risolvere i problemi causati in un altro punto del flusso di lavoro. Inoltre: se qualcuno dimentica di effettuare più modifiche, Git è inutile. Potresti spiegare il tuo ambiente per favore? Possiedi test e QA identici alla produzione? Hai molto più di due o tre ospiti dello stesso tipo / scopo o è eterogeneo? Cosa è più importante: confrontare le configurazioni degli host o tenere traccia della configurazione di un host nel tempo?
Try-catch-finalmente il

Risposte:


7

Il programma etckeeperriesce /etca git, è sufficiente modificare il valore predefinito vcs backend da bzra gita /etc/etckeeper/etckeeper.conf.

È installato di default in Ubuntu Linux e gestisce i casi comuni di quando eseguire il commit automaticamente.
Si impegna prima di installare i pacchetti in caso di modifiche manuali senza impegno e dopo l'installazione.


5

Il problema con il monitoraggio della configurazione per /etcin gitè che tutto ciò che guadagni davvero facendo così è il controllo della versione (la maggior parte dei gitnovizi non sa nemmeno come tage branchcorrettamente, quindi improbabile a quel punto) e la possibilità di eseguire il rollback (di nuovo, se non lo sei t taggingcorrettamente, non ottieni altro che un registro per incolpare le persone); ma perdi il templating (non puoi modello perché git non lo fornisce) e il ridimensionamento (non puoi applicare la configurazione altrove; specialmente se stai usando database distribuiti come Elasticsearch) e la gestione automatizzata dei sistemi (di nuovo, git non lo fornisce ).

Detto questo, ciò che probabilmente stai cercando è la gestione della configurazione ; che i legami di template , gite lo scripting di base per gestire la configurazione. Questo, ovviamente, sta andando nella direzione di DevOps e Infrastruttura come Codice .

Da aggiungere a questo; Ansible ha ansible-pullche può estrarre l'ultimo repository dei tuoi playbook git; lo stesso vale anche per lo Chef. Fondamentalmente, i moderni amministratori Linux non dovrebbero usare qualcosa del genere etckeeper. Chef ha anche la modalità client-server in cui è possibile gestire tutti i sistemi con i chef-clientbasati su environment, rolese Cookbook versioni; cose che non puoi fare gitsolo e su larga scala.


Non solo il rollback mi prende con git. Ottengo anche la comparabilità (sia tra le macchine che tra i tempi) e anche la sincronizzazione. Ma penso che l'idea di alcuni strumenti più mirati sia utile.
Peter - Ripristina Monica il
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.