Przeprowadziliśmy migrację wielu kodów źródłowych do git i jesteśmy bardzo zadowoleni z naszego obecnego rozwiązania. Chcielibyśmy, aby nasze pliki konfiguracyjne serwera były wersjonowane w tym samym systemie, ale jest kilka rzeczy, które nie działają tak, jak byśmy tego chcieli i mam nadzieję, że ktoś może podzielić się z nim swoimi doświadczeniami.
To pytanie jest podobne do korzystania z kontroli wersji plików konfiguracyjnych serwera? , ale mamy specjalne wymagania, które nie działają z sugestiami dotyczącymi tego pytania.
Obecna konfiguracja używa subversion do plików konfiguracyjnych. Odpowiednie repozytorium wygląda mniej więcej tak
/ # root repozytorium + - www.domain.com/ # konfiguracja dla www | \--itp/ | \ - apache2 / + - dev.domain.com/ # konfiguracja dla dev | + - etc / | \--optować/ | \ - app1 / | \ - conf / # konfiguracja dla app1 na dev \ - staging.domain.com/ # konfiguracja do przemieszczania
Z subversion działałoby to dobrze, ponieważ możliwe jest po prostu pobranie podkatalogu repozytorium. Ponadto można użyć svn: externals, aby wskazać jedną wspólną strukturę dla kilku różnych konfiguracji. Musieliśmy mieć do czynienia tylko z plikami .svn we wszystkich wersjonowanych katalogach. Z drugiej strony Git nie ma svn: zewnętrzne i rzadkie kasy zawsze wymagają, aby ścieżka z katalogu głównego do rzeczywistego katalogu była taka sama.
Omawiając migrację do git, próbowałem zapisać główne wymagania dotyczące wersji konfiguracji serwera:
- chcemy tylko jednego repozytorium
- powinno być możliwe łatwe wprowadzanie zmian do centralnego pilota
- zestawy zmian powinny zawierać prawdziwego autora
Czy istnieje dobry sposób, aby mieć całą konfigurację w jednym repozytorium i mieć tylko ścieżkę pomocniczą jako kopię roboczą? Obecnie rozważam dwa podejścia, ale najpierw chciałem zadać to pytanie
- Jeśli repozytorium .git znajduje się w stałej lokalizacji, np. Gdzieś w / var , możemy połączyć się z pod ścieżką z katalogu roboczego „docelowego”. Główny problem: nie wiedziałbym o sposobie „linkowania” z / etc do innego katalogu w celu importowania tylko zawartości, z wyjątkiem symlinkowania pojedynczych plików
- Znalazłem inną alternatywę dla tego pytania SO , sugerując posiadanie wielu oddziałów w jednym repozytorium. Z pewnością zwiększyłoby to złożoność, ale widziałem, jak próbujemy w ten sposób.
Używanie git na jednym komputerze do zarządzania plikami konfiguracyjnymi działa dobrze, ale uważam, że musi być ktoś, kto używa go w sposób, w jaki chcielibyśmy go używać.
Dziękuję
Kariem
/
powodu uprawnień do zapisu.