Powrót do bloga

Jak skonfigurować automatyczne wdrażanie za pomocą Git na VPS

Jak skonfigurować automatyczne wdrażanie za pomocą Git na VPS

Git to najpopularniejszy system kontroli wersji w dziedzinie tworzenia oprogramowania. Jest to oprogramowanie open-source, aktywnie rozwijane od 2005 roku przez Linus Torvalds, słynnego twórcę Linux. Dziś ogromna liczba projektów programistycznych (w tym komercyjnych) używa systemu Git do zarządzania wersjami.

Git opiera się na architekturze rozproszonej, co czyni go doskonałym przykładem DVCS (Distributed Version Control System). Używając systemu Git, możemy jednocześnie zarządzać zarówno lokalnym, jak i zdalnym repozytorium. W tym poradniku pokażemy, jak skonfigurować automatyczne wdrażanie projektu Git za pomocą VPS.

Wymagania wstępne

W tym poradniku będziemy mieć jedno repozytorium lokalne i jedno zdalne na serwerze VPS. Lokalne repozytorium będzie przesyłać zmiany do zdalnego repozytorium. Ze zdalnego repozytorium możemy przesłać zmiany do gałęzi beta lub  live . Aby to osiągnąć, musisz najpierw spełnić kilka wymagań wstępnych.

Aby ustanowić bezpieczne połączenie z VPS, będziemy używać SSH. Na szczęście Git obsługuje również SSH jako protokół do łączenia się ze zdalnymi repozytoriami. Ten poradnik omawia konfigurację SSH w celu łączenia się ze zdalnymi serwerami w systemie Ubuntu.

Konfiguracja VPS

Na naszym zdalnym serwerze będziemy mieć następującą konfigurację:

  • Katalog live: /var/www/dummy-domain.com
  • Repozytorium na serwerze: /var/repo/site.git

Z lokalnej maszyny Git prześle aktualizacje do repozytorium VPS. W repozytorium VPS skonfigurujemy skrypt, którego Git użyje do automatycznego przesłania ich do katalogu live. Możliwe jest również skonfigurowanie repozytorium dla wersji beta .

  • Tworzenie repozytoriów

Połącz się z VPS i utwórz lokalizacje repozytoriów:

Deployment with Git screenshot 1

Następnie zainicjuj repozytorium Git:

Deployment with Git screenshot 2

W tym miejscu flaga --bare określa, że nie będzie tam żadnych plików źródłowych, a jedynie komponenty kontroli wersji.

  • Hooki

Następnie skonfigurujemy hooki dla repozytorium. Każde repozytorium Git zawiera folder o nazwie hooks. Zawiera on przykładowe pliki, które służą jako szablony dla hooków i różnych niestandardowych akcji.

Zgodnie z oficjalną dokumentacją systemu Git, istnieją trzy rodzaje hooków:

  • pre-receive: Jest wykonywany, gdy tylko serwer otrzyma żądanie push.
  • post-receive: Jest wykonywany po zakończeniu żądania push.
  • update: Podobny do pre-receive. Wykonuje się jednak raz na każdą gałąź.

Z lokalizacji repozytorium uruchom polecenie ls:

Deployment with Git code screenshot 3

Zmień bieżący katalog na hooks:

Deployment with Git code screenshot 4

Teraz utwórz skrypt post-receive:

Wewnątrz skryptu wprowadź następujący kod. Pamiętaj, aby odpowiednio zmienić lokalizacje katalogów:

Deployment with Git code screenshot 6

Zapisz plik i zamknij edytor. Ustaw plik jako wykonywalny:

Deployment with Git code screenshot 7

Teraz za każdym razem, gdy przesyłanie (push) zostanie zakończone, Git zajrzy do skryptu post-receive i odpowiednio umieści pliki na swoim miejscu.

Konfiguracja lokalnej maszyny

Zdalna maszyna jest gotowa na przyjmowanie nadchodzących aktualizacji projektu Git. Następnie skonfigurujemy lokalne repozytorium, aby używało VPS jako zdalnego serwera Git.

Stwórzmy przykładowy katalog projektu Git:

Configuring the Local Machine

Deployment with Git code screenshot 8

sample Git project directory:

Now, initiate the repo:

Deployment with Git code screenshot 9

Musimy zadeklarować zdalną ścieżkę repozytorium. W tym miejscu będziemy odnosić się do zdalnej lokalizacji jako gałęzi live . Następnie uruchom następujące polecenie:

sudo git remote

Przetestujmy to. Dodaliśmy skrypt powłoki do katalogu projektu:

project directory

Następnie dodaj plik do projektu i wykonaj commit:

Deployment with Git code screenshot 10

W kolejnym poleceniu prześlemy projekt na serwer live:

Deployment with Git code screenshot 11

Git połączy się z VPS za pomocą SSH. Jeśli połączenie SSH zostało skonfigurowane z użyciem hasła, Git poprosi o hasło uwierzytelniające.

Repozytorium beta

Co jeśli projekt nie ma być wdrażany w jednym kroku? Może wymaga dalszych testów w katalogu beta. Korzystając z opisanej dotychczas metody, możemy utworzyć kolejną gałąź na VPS, zwaną gałęzią beta.

  • Konfiguracja gałęzi Beta na VPS

Najpierw musimy utworzyć katalogi na VPS. Połącz się z VPS i utwórz katalog w /var/www:

Teraz potrzebujemy repozytorium Git, które będzie działać jako gałąź beta:

Zainicjuj repozytorium:

sudo git init

Tak jak poprzednio, zaimplementuj skrypt post-receive:

sudo nano

Następnie wprowadź następujący kod:

GNU nano

Zapisz plik i zamknij edytor. Oznacz post-receive jako plik wykonywalny:

sudo chmod
  • Dodawanie repozytorium Beta na lokalnym komputerze

Jesteśmy teraz gotowi, aby dodać repozytorium beta do naszego lokalnego repozytorium. Z poziomu lokalnego katalogu projektu uruchom następujące polecenie Git:

Voila! Lokalne repozytorium jest teraz skonfigurowane ze zdalnym repozytorium beta. Spróbuj przesłać zmiany:

sudo git add
  • Przenoszenie z Beta do Live na VPS

Załóżmy, że wszystkie zmiany zostały zgromadzone w repozytorium beta. Jak przesłać zmiany do repozytorium live? To bardzo proste. W obrębie repozytorium beta na VPS dodajemy lokalne repozytorium live. Następnie po prostu przesyłamy wydanie beta do repozytorium live.

Połącz się z VPS i uruchom następujące polecenia:

Następnie możesz przesłać wydanie beta do live:

sudo git push live master

Podsumowanie

Ten poradnik pomyślnie pokazuje, jak skonfigurować i używać VPS jako zdalnego repozytorium dla projektu Git. VPS może automatycznie wdrażać najnowszy kod i pliki bez żadnego skomplikowanego procesu. Może również służyć jako centrum współpracy dla wielu zespołów programistycznych.

Z pomocą Gita możesz stworzyć prosty mechanizm automatycznego wdrażania. Jednak do właściwego zarządzania projektami zaleca się korzystanie z narzędzi takich jak GitLab. Poniższy poradnik przedstawia instalację i wdrażanie GitLab na VPS zarządzającym wieloma projektami. Możesz również sprawdzić jak skonfigurować potoki ciągłej integracji (CI) GitLab na Ubuntu 20.04.

Miłego kodowania!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev jest projektantem kreatywnym w CloudSigma, skupiającym się na spójnej tożsamości biznesowej przy wykorzystaniu tradycyjnych i innowacyjnych kanałów marketingowych. Biegle łączy wizję artystyczną ze strategicznym marketingiem, tworząc wywierające wpływ narracje marki.

Komentarze

Brak komentarzy. Bądź pierwszy.