W jaki sposób radzisz sobie z ignorowanymi plikami w gitignore podczas ciągłego wdrażania w Git? Pliki te są ignorowane ze względu na prywatność (tj. Nie chcą, aby były wypychane do innych zdalnych repozytoriów, takich jak GitHub), ale przy ignorowaniu tych plików nie są wypychane do repozytorium ciągłego wdrażania, aplikacja nie uruchomiłaby się (ponieważ pliki ignorowane są wymagane do poprawnego działania oprogramowania).
Jak zwykle ludzie się tym zajmują? W takim przypadku, czy Git nie jest najlepszym kandydatem do ciągłego wdrażania z powodu ignorowanych plików?
version-control
użytkownik3175663
źródło
źródło
Odpowiedzi:
Jeśli Twoje oprogramowanie nie działa bez tych plików, będziesz mieć problem z jakimkolwiek wdrożeniem, ręcznym, automatycznym lub ciągłym, z dowolnym rodzajem VCS, a nawet bez VCS. Więc zmień oprogramowanie tak, aby mogło faktycznie działać bez tych plików (na przykład może przyjąć jakieś „domyślne parametry”, jeśli brakuje plików), lub podaj wersję tego pliku odpowiednią do wdrożenia, która jest kopiowana ( jako część etapu wdrażania) w środowisku docelowym, na wypadek gdyby nie istniała „prywatna” wersja tych plików.
Jeśli mówimy o czymś takim plikiem zawierającym poświadczenia bazy danych do logowania do serwera, który ze względów bezpieczeństwa, nie chcesz być w kontroli wersji, a następnie trzeba będzie umieścić ten plik w środowisku wdrażania raz , prawdopodobnie ręcznie , przez osobę, która ma wystarczające prawa lub zna hasło. Jest to jednak celowe i nie powinno powstrzymywać Cię przed wdrażaniem codziennych nowych wersji oprogramowania. Tylko upewnij się, że pliki poświadczeń w miejscu nie są zastępowane podczas wdrażania nowej wersji.
źródło
Inną opcją jest przechowywanie poufnych informacji w narzędziu do wdrażania. I konfiguracja narzędzia do wdrażania w oddzielnym prywatnym repozytorium źródłowym.
Pozostawienie wrażliwych danych na maszynie docelowej działa, ale może ulec gniciu - ktoś to zmieni, nie wykonując procedur, maszyna hamuje i nikt nie pamięta prawidłowych ustawień itp.
Na przykład Saltstack ma https://docs.saltstack.com/en/latest/topics/pillar/index.html
źródło