Wir haben viel Quellcode auf git migriert und sind sehr zufrieden mit unserer aktuellen Lösung. Wir möchten, dass unsere Serverkonfigurationsdateien auf demselben System versioniert werden, aber es gibt einige Dinge, die nicht so funktionieren, wie wir es gerne hätten, und ich hoffe, dass jemand seine Erfahrungen hier mitteilen kann.
Diese Frage ähnelt der Verwendung der Versionskontrolle für Serverkonfigurationsdateien. , aber wir haben einige spezielle Anforderungen, die mit den Vorschlägen zu dieser Frage nicht funktionieren.
Das aktuelle Setup verwendet Subversion für Konfigurationsdateien. Das entsprechende Repository sieht ungefähr so aus
/ # Wurzel des Repositorys + - www.domain.com/ # Konfiguration für www | \--etc/ | \ - apache2 / + - dev.domain.com/ # configuration for dev | + - etc / | \ - opt / | \ - app1 / | \ - conf / # configuration for app1 on dev \ - staging.domain.com/ # Konfiguration für die Bereitstellung
Mit Subversion würde dies gut funktionieren, da es möglich ist, nur ein Unterverzeichnis eines Repositorys auszuchecken. Darüber hinaus können Sie svn: externals verwenden, um auf eine gemeinsame Struktur für mehrere verschiedene Konfigurations-Setups zu verweisen. Wir mussten uns nur mit den .svn- Dateien in allen versionierten Verzeichnissen befassen . Git hingegen hat kein SVN: Externe und spärliche Auscheckvorgänge erfordern immer den gleichen Pfad vom Stammverzeichnis zum eigentlichen Verzeichnis.
Bei der Erörterung der Migration zu Git habe ich versucht, die wichtigsten Anforderungen für die Versionierung der Serverkonfiguration aufzuschreiben :
- Wir wollen nur ein einziges Repository
- Änderungen sollten einfach auf die Zentralfernbedienung übertragen werden können
- Änderungssätze sollten den tatsächlichen Autor enthalten
Gibt es eine gute Möglichkeit, die gesamte Konfiguration in einem Repository zu haben und nur einen Unterpfad als Arbeitskopie zu haben? Derzeit überlege ich mir zwei Ansätze, wollte diese Frage hier aber zuerst stellen
- Wenn sich das .git- Repository an einem festen Ort befindet, z. B. irgendwo in / var , können wir eine Verknüpfung zum Unterpfad aus dem Arbeitsverzeichnis "target" herstellen. Das Hauptproblem: Ich kenne keine Möglichkeit, von / etc in ein anderes Verzeichnis zu "verlinken" , um nur den Inhalt zu importieren, außer das Verlinken einzelner Dateien
- Ich habe eine andere Alternative zu dieser SO-Frage gefunden und vorgeschlagen, mehrere Filialen in einem Repository zu haben. Dies würde sicherlich die Komplexität erhöhen, aber ich könnte sehen, wie wir es auf diese Weise versuchen.
Die Verwendung von git auf einem einzelnen Computer für die Verwaltung von Konfigurationsdateien funktioniert einwandfrei, aber ich glaube, es muss jemanden geben, der es so verwendet, wie wir es gerne verwenden würden.
Vielen Dank,
Kariem
/
aufgrund der Schreibberechtigungen befinden muss.