Utiliser git pour gérer / etc?

14

Je pense à un système, où /etcont été suivis sur un référentiel git distant. Je pense à un flux de travail git, où chaque machine hôte où une branche différente.

Toutes les versions précédentes sur chaque machine pouvaient être facilement suivies, comparées, fusionnées.

Si une /etcmodification devait être validée sur de nombreuses machines, elle pourrait être facilement effectuée par un script de fusion.

En cas de /etcchangement "indésirable" , cela pourrait être bien visible (même les scripts d'alarme pourraient être réglés pour le surveiller).

Quelqu'un a déjà utilisé une telle configuration? Y a-t-il des problèmes de sécurité?

peterh - Réintégrer Monica
la source
6
Il en existe etckeeperdéjà sur de nombreux systèmes. Il n'offre pas toutes les fonctionnalités que vous avez demandées. Par exemple, il a un référentiel par hôte, pas un référentiel central.
jofel
Quels fichiers vous intéressent ou quels fichiers ont été modifiés par le passé? Je demande parce que je pense que Git n'est pas la bonne façon de résoudre les problèmes causés à un autre moment de votre flux de travail. De plus: si quelqu'un oublie de commettre plusieurs changements, Git ne vaut rien. Pourriez-vous expliquer votre environnement? Avez-vous des environnements de test et d' assurance qualité identiques à la production? Avez-vous beaucoup plus de deux ou trois hôtes du même type / but ou est-il hétérogène? Quoi de plus important: comparer les configurations d'hôtes ou suivre une configuration d'hôtes au fil du temps?
try-catch-finally

Réponses:

8

Le programme se etckeepergère /etcdans git, il vous suffit de changer le backend vcs par défaut de bzrà gitin /etc/etckeeper/etckeeper.conf.

Il est installé par défaut dans Ubuntu Linux et gère les cas courants de validation automatique.
Il s'engage avant l'installation des packages en cas de modifications manuelles non validées et après l'installation.

Volker Siegel
la source
5

Le problème avec le suivi de la configuration pour /etcin gitest que tout ce que vous gagnez vraiment en faisant cela est le contrôle de version (la plupart des gitnovices ne savent même pas comment taget branchcorrectement, donc peu probable à ce stade) et la possibilité de revenir en arrière (encore une fois, si vous n'êtes pas '' t taggingcorrectement, vous ne gagnez rien mais un journal pour blâmer les gens); mais vous perdez le modèle (modèle de cant parce que git ne le fournit pas) et la mise à l'échelle (vous ne pouvez pas appliquer la configuration ailleurs; surtout si vous utilisez des bases de données distribuées comme Elasticsearch), et la gestion automatisée des systèmes (encore une fois, git ne fournit pas cela ).

Cela étant dit, ce que vous recherchez probablement, c'est la gestion de la configuration ; que les liens dans templating , gitet les scripts de base pour gérer la configuration. Bien sûr, cela va dans le sens de DevOps et de l' infrastructure en tant que code .

Pour ajouter à cela; Ansible a ansible-pullqui peut extraire le dernier dépôt de vos playbooks git; il en va de même pour le chef. Fondamentalement, les administrateurs Linux modernes ne devraient pas utiliser quelque chose comme etckeeper. Le chef a également le mode client-serveur sur lequel vous pouvez gérer tous les systèmes avec les chef-clientbasés sur environment, roleset les versions livres de cuisine; des choses que vous ne pouvez pas faire gituniquement et à grande échelle.


la source
Non seulement le retour en arrière me donne avec git. J'obtiens aussi la comparabilité (à la fois entre machines et entre temps), ainsi que la synchronisation. Mais je pense que l'idée de certains outils plus ciblés est utile.
peterh