Git je najpopulárnejší systém na správu verzií v oblasti vývoja softvéru. Je to open-source a od roku 2005 ho aktívne udržiava Linus Torvalds, slávny tvorca systému Linux. Dnes ohromujúce množstvo softvérových projektov (vrátane komerčných) používa Git na správu verzií.
Git využíva distribuovanú architektúru, vďaka čomu je dokonalým príkladom DVCS (Distributed Version Control System). Pomocou systému Git môžeme súčasne spravovať lokálny aj vzdialený repozitár. V tomto návode ukážeme, ako nakonfigurovať automatické nasadenie projektu Git pomocou VPS.
Požiadavky
V tomto návode budeme mať jeden lokálny repozitár a jeden vzdialený repozitár na VPS. Lokálny repozitár bude odosielať zmeny do vzdialeného repozitára. Zo vzdialeného repozitára môžeme zmeny odoslať do beta alebo live vetvy. Aby ste to dosiahli, musíte najprv splniť niekoľko požiadaviek.
- Lokálny počítač a vzdialený server, pričom oba používajú ako operačný systém Ubuntu. Tento návod ukazuje, ako nakonfigurovať a nastaviť servery Ubuntu.
- Oba stroje sú nakonfigurované s Gitom.
Na nadviazanie zabezpečeného pripojenia k VPS budeme používať SSH. Našťastie Git podporuje aj SSH ako protokol na pripojenie k vzdialeným repozitárom. Tento návod sa zaoberá konfiguráciou SSH na pripojenie k vzdialeným serverom v systéme Ubuntu.
Konfigurácia VPS
Na našom vzdialenom serveri budeme mať nasledujúcu konfiguráciu:
- Live adresár: /var/www/dummy-domain.com
- Repozitár servera: /var/repo/site.git
Z lokálneho počítača bude Git odosielať aktualizácie do repozitára VPS. V repozitári VPS nakonfigurujeme skript, ktorý Git použije na automatické odoslanie do live adresára. Je tiež možné nakonfigurovať repozitár pre beta verzie.
-
Vytvorenie repozitárov
Pripojte sa k VPS a vytvorte umiestnenia repozitárov:
|
1 2 3 |
cd /var sudo mkdir -pv repo && cd repo sudo mkdir -pv site.git && cd site.git |
Ďalej inicializujte Git repozitár:
|
1 |
sudo git init --bare |
Tu príznak --bare označuje, že nebudú prítomné žiadne zdrojové súbory, iba komponenty správy verzií.
-
Hooky
Ďalej nakonfigurujeme hooky pre repozitár. Každý Git repozitár obsahuje priečinok s názvom hooks. Obsahuje vzorové súbory, ktoré slúžia ako šablóna pre hooky a rôzne vlastné akcie.
Podľa oficiálnej dokumentácie systému Git existujú tri typy hookov:
- pre-receive: Spúšťa sa hneď, ako server prijme požiadavku na push.
- post-receive: Spúšťa sa po dokončení požiadavky na push.
- update: Podobne ako pre-receive. Spúšťa sa však raz pre každú vetvu.
V umiestnení repozitára spustite príkaz ls:
|
1 |
ls -l |
Zmeňte aktuálny adresár na hooks:
|
1 |
cd hooks/ |
Teraz vytvorte skript post-receive:
|
1 |
sudo nano post-receive |
Do skriptu vložte nasledujúci kód. Uistite sa, že ste príslušne zmenili umiestnenia adresárov:
|
1 2 |
#!/bin/sh git --work-tree=/var/www/dummy-domain.com --git-dir=/var/repo/site.git checkout -f |
Uložte súbor a zatvorte editor. Nastavte súbor ako spustiteľný:
|
1 |
sudo chmod +x post-receive |
Teraz, po každom dokončení push, sa Git pozrie do skriptu post-receive a podľa toho umiestni súbory.
Konfigurácia lokálneho počítača
Vzdialený stroj je pripravený prijímať prichádzajúce aktualizácie projektu Git. Ďalej nakonfigurujeme lokálny repozitár tak, aby používal VPS ako vzdialený Git server.
Vytvorme si ukážkový adresár projektu Git:
Teraz inicializujte repozitár:
|
1 |
sudo git init |
Musíme deklarovať vzdialenú cestu k repozitáru. Tu budeme na vzdialené umiestnenie odkazovať ako na live vetvu. Potom spustite nasledujúci príkaz:
|
1 |
sudo git remote add live ssh://<remote_username>@<remote_ip_address>/var/repo/site.git |
Poďme to otestovať. Do adresára projektu sme pridali shell skript:
Ďalej pridajte súbor do projektu a vykonajte commit:
|
1 2 |
sudo git add . sudo git commit -m "náhodný commit" |
V nasledujúcom príkaze odošleme projekt na live server:
|
1 |
sudo git push live master |
Git sa pripojí k VPS pomocou SSH. Ak bolo SSH pripojenie nakonfigurované na použitie hesla, Git si vyžiada overovacie heslo.
Beta repozitár
Čo ak sa projekt nemá nasadiť v jednom kroku? Možno vyžaduje ďalšie testovanie v rámci beta adresára. Pomocou doteraz opísanej metódy môžeme vo VPS vytvoriť ďalšiu vetvu, označovanú ako beta vetva.
-
Konfigurácia beta vetvy na VPS
Najprv musíme vytvoriť adresáre pre VPS. Pripojte sa k VPS a vytvorte adresár pod /var/www:
|
1 2 |
cd /var/www sudo mkdir beta |
Teraz potrebujeme Git repozitár, ktorý bude fungovať ako beta vetva:
|
1 2 |
cd /var/repo sudo mkdir -pv beta.git && cd beta.git |
Inicializujte repozitár:
|
1 |
sudo git init --bare |
Rovnako ako predtým, implementujte post-receive skript:
|
1 2 |
cd hooks sudo nano post-receive |
Potom zadajte nasledujúci kód:
|
1 2 |
#!/bin/sh git --work-tree=/var/www/beta --git-dir=/var/repo/beta.git checkout -f |
Uložte súbor a zatvorte editor. Označte post-receive ako spustiteľný súbor:
|
1 |
sudo chmod +x post-receive |
-
Pridanie beta repozitára na lokálnom počítači
Teraz sme pripravení pridať beta repozitár do nášho lokálneho repozitára. Z adresára lokálneho projektu spustite nasledujúci príkaz Git:
|
1 |
sudo git remote add beta ssh://<username>@<remote_ip_address>/var/repo/beta.git |
A je to! Lokálny repozitár je teraz nakonfigurovaný s beta vzdialeným repozitárom. Skúste odoslať zmeny:
|
1 2 3 |
sudo git add . sudo git commit -m "beta verzia" sudo git push beta master |
-
Presun z Beta do Live vo VPS
Povedzme, že všetky zmeny sa nahromadili v beta repozitári. Ako odošlete zmeny do live repozitára? Je to veľmi jednoduché. V rámci beta repozitára na VPS pridáme lokálny live repozitár. Potom jednoducho odošleme beta verziu do live repozitára.
Pripojte sa k VPS a spustite nasledujúce príkazy:
|
1 2 |
cd /var/repo/beta.git sudo git remote add live ../site.git |
Potom môžete odoslať beta verziu do live:
|
1 |
sudo git push live master |
Záverečné myšlienky
Tento návod úspešne demonštruje, ako nakonfigurovať a používať VPS ako vzdialený repozitár pre váš Git projekt. VPS dokáže automaticky nasadiť najnovšie kódy a súbory bez akéhokoľvek zložitého procesu. Môže tiež fungovať ako centrum pre spoluprácu medzi viacerými vývojárskymi tímami.
S pomocou Gitu môžete vytvoriť jednoduchý mechanizmus pre automatické nasadenie. Pre správne riadenie projektov sa však odporúča použiť niečo ako GitLab. Nasledujúci návod ukazuje inštaláciu a nasadenie GitLabu na VPS na správu viacerých projektov. Môžete si tiež pozrieť ako nastaviť GitLab Continuous Integration (CI) pipelines na Ubuntu 20.04.
Príjemnú prácu!















Komentáre
Zatiaľ žiadne komentáre. Buďte prvý.