Nous avons migré beaucoup de code source vers git et sommes très satisfaits de notre solution actuelle. Nous aimerions que nos fichiers de configuration de serveur soient versionnés sur le même système, mais il y a quelques choses qui ne fonctionnent pas comme nous le voudrions et j'espère que quelqu'un pourra partager son expérience ici.
Cette question est similaire à l' utilisation du contrôle de révision pour les fichiers de configuration du serveur? , mais nous avons des exigences particulières qui ne fonctionnent pas avec les suggestions sur cette question.
La configuration actuelle utilise subversion pour les fichiers de configuration. Le référentiel correspondant ressemble à ceci
/ # racine du référentiel + - www.domain.com/ # configuration pour www | \--etc/ | \ - apache2 / + - dev.domain.com/ # configuration pour dev | + - etc / | \--opter/ | \ - app1 / | \ - configuration conf / # pour app1 sur dev \ - staging.domain.com/ # configuration pour le transfert
Avec subversion, cela fonctionnerait très bien, car il est possible de simplement extraire un sous-répertoire d'un référentiel. De plus, vous pouvez utiliser svn: externals pour pointer vers une structure commune pour plusieurs configurations de configuration différentes. Nous n'avons eu à gérer que les fichiers .svn dans tous les répertoires versionnés. Git, d'autre part, n'a pas svn: les externes et les extractions clairsemées nécessitent toujours que le chemin de la racine vers le répertoire réel soit le même.
Lors de la discussion de la migration vers git, j'ai essayé d'écrire les principales exigences pour la configuration du serveur versioning:
- nous ne voulons qu'un seul référentiel
- il devrait être possible de pousser facilement les modifications de la télécommande centrale
- les ensembles de modifications doivent contenir le véritable auteur
Existe-t-il un bon moyen d'avoir toute la configuration dans un référentiel et de n'avoir qu'un sous-chemin comme copie de travail? Actuellement, j'envisage deux approches, mais je voulais d'abord poser cette question ici
- Si le dépôt .git est à un emplacement fixe, par exemple quelque part dans / var , nous pourrions créer un lien vers le sous-chemin à partir du répertoire de travail "cible". Le problème principal: je ne connais pas de moyen de "lier" de / etc à un autre répertoire afin d'importer uniquement le contenu, à l'exception de la liaison symbolique de fichiers uniques
- J'ai trouvé une autre alternative sur cette question SO , suggérant d'avoir plusieurs branches dans un référentiel. Cela augmenterait certainement la complexité, mais je pouvais nous voir essayer de cette façon.
L'utilisation de git sur une seule machine pour la gestion des fichiers de configuration fonctionne bien, mais je pense qu'il doit y avoir quelqu'un qui l'utilise de la façon dont nous aimerions l'utiliser.
Merci
Kariem
/
raison des autorisations d'écriture.