Git je nejpopulárnější systém pro správu verzí v oblasti vývoje softwaru. Je open-source a od roku 2005 jej aktivně udržuje Linus Torvalds, slavný tvůrce Linuxu. Dnes používá Git pro správu verzí ohromné množství softwarových projektů (včetně komerčních).
Git využívá distribuovanou architekturu, což z něj činí dokonalý příklad DVCS (distribuovaného systému správy verzí). Pomocí Gitu můžeme spravovat lokální i vzdálený repozitář současně. V tomto návodu si ukážeme, jak nakonfigurovat automatické nasazení projektu Git pomocí VPS.
Požadavky
V tomto návodu budeme mít jeden lokální repozitář a jeden vzdálený repozitář na VPS. Lokální repozitář bude odesílat (pushovat) změny do vzdáleného repozitáře. Ze vzdáleného repozitáře můžeme změny odeslat do beta nebo live větve. Abychom toho dosáhli, musíte nejprve splnit několik předpokladů.
- Lokální počítač a vzdálený server, oba s operačním systémem Ubuntu. Tento návod ukazuje jak nakonfigurovat a nastavit servery Ubuntu.
- Oba stroje jsou nakonfigurovány s Gitem.
K navázání zabezpečeného připojení k VPS budeme používat SSH. Git naštěstí také podporuje SSH jako protokol pro připojení ke vzdáleným repozitářům. Tento návod se zabývá konfigurací SSH pro připojení ke vzdáleným serverům v Ubuntu.
Konfigurace VPS
Na našem vzdáleném serveru budeme mít následující konfiguraci:
- Produkční adresář: /var/www/dummy-domain.com
- Repozitář serveru: /var/repo/site.git
Z lokálního počítače bude Git odesílat aktualizace do repozitáře VPS. V repozitáři VPS pak nakonfigurujeme skript, který Git použije k automatickému odeslání do produkčního adresáře. Je také možné nakonfigurovat repozitář pro beta verze.
-
Vytvoření repozitářů
Připojte se k VPS a vytvořte umístění repozitářů:
|
1 2 3 |
cd /var sudo mkdir -pv repo && cd repo sudo mkdir -pv site.git && cd site.git |
Dále inicializujte Git repozitář:
|
1 |
sudo git init --bare |
Zde příznak --bare určuje, že zde nebudou žádné zdrojové soubory, pouze komponenty pro správu verzí.
-
Hooky
Dále nakonfigurujeme hooky pro repozitář. Každý Git repozitář obsahuje složku s názvem hooks. Obsahuje ukázkové soubory, které slouží jako šablona pro hooky a různé vlastní akce.
Podle oficiální dokumentace Gitu existují tři typy hooků:
- pre-receive: Spustí se, jakmile server přijme požadavek na odeslání (push).
- post-receive: Spustí se po dokončení požadavku na odeslání (push).
- update: Podobný jako pre-receive. Spustí se však jednou pro každou větev.
V umístění repozitáře spusťte příkaz ls :
|
1 |
ls -l |
Změňte aktuální adresář na hooks:
|
1 |
cd hooks/ |
Nyní vytvořte skript post-receive :
|
1 |
sudo nano post-receive |
Do skriptu vložte následující kód. Nezapomeňte odpovídajícím způsobem změnit umístění adresářů:
|
1 2 |
#!/bin/sh git --work-tree=/var/www/dummy-domain.com --git-dir=/var/repo/site.git checkout -f |
Uložte soubor a zavřete editor. Nastavte soubor jako spustitelný:
|
1 |
sudo chmod +x post-receive |
Nyní se Git po každém dokončení odeslání (push) podívá do skriptu post-receive a podle toho umístí soubory.
Konfigurace lokálního počítače
Vzdálený stroj je připraven přijímat příchozí aktualizace projektu Git. Dále nakonfigurujeme lokální repozitář tak, aby používal VPS jako vzdálený Git server.
Vytvořme si ukázkový adresář projektu Git:
Nyní inicializujte repozitář:
|
1 |
sudo git init |
Musíme deklarovat vzdálenou cestu k repozitáři. Zde budeme na vzdálené umístění odkazovat jako na větev live . Poté spusťte následující příkaz:
|
1 |
sudo git remote add live ssh://<remote_username>@<remote_ip_address>/var/repo/site.git |
Pojďme to otestovat. Do adresáře projektu jsme přidali shell skript:
Dále přidejte soubor do projektu a proveďte commit:
|
1 2 |
sudo git add . sudo git commit -m "random commit" |
V dalším příkazu odešleme projekt na live server:
|
1 |
sudo git push live master |
Git se připojí k VPS pomocí SSH. Pokud bylo SSH připojení nakonfigurováno pro použití hesla, Git požádá o ověřovací heslo.
Beta repozitář
Co když projekt nemá být nasazen v jednom kroku? Možná vyžaduje další testování v rámci beta adresáře. Pomocí dosud popsané metody můžeme ve VPS vytvořit další větev, označovanou jako beta větev.
-
Konfigurace beta větve na VPS
Nejprve musíme vytvořit adresáře pro VPS. Připojte se k VPS a vytvořte adresář pod /var/www:
|
1 2 |
cd /var/www sudo mkdir beta |
Nyní potřebujeme Git repozitář, který bude fungovat jako beta větev:
|
1 2 |
cd /var/repo sudo mkdir -pv beta.git && cd beta.git |
Inicializujte repozitář:
|
1 |
sudo git init --bare |
Stejně jako předtím naimplementujte post-receive skript:
|
1 2 |
cd hooks sudo nano post-receive |
Poté zadejte následující kód:
|
1 2 |
#!/bin/sh git --work-tree=/var/www/beta --git-dir=/var/repo/beta.git checkout -f |
Uložte soubor a zavřete editor. Označte post-receive jako spustitelný soubor:
|
1 |
sudo chmod +x post-receive |
-
Přidání beta repozitáře na lokální počítač
Nyní jsme připraveni přidat beta repozitář do našeho lokálního repozitáře. Z adresáře lokálního projektu spusťte následující Git příkaz:
|
1 |
sudo git remote add beta ssh://<username>@<remote_ip_address>/var/repo/beta.git |
A je to! Lokální repozitář je nyní nakonfigurován se vzdáleným beta repozitářem. Zkuste odeslat změny:
|
1 2 3 |
sudo git add . sudo git commit -m "beta version" sudo git push beta master |
-
Přechod z Beta do Live ve VPS
Řekněme, že všechny změny se nashromáždily v beta repozitáři. Jak odešlete změny do live repozitáře? Je to velmi jednoduché. V rámci beta repozitáře na VPS přidáme lokální live repozitář. Poté jednoduše odešleme beta verzi do live repozitáře.
Připojte se k VPS a spusťte následující příkazy:
|
1 2 |
cd /var/repo/beta.git sudo git remote add live ../site.git |
Poté můžete odeslat beta verzi do live:
|
1 |
sudo git push live master |
Závěrečné myšlenky
Tato příručka úspěšně ukazuje, jak nakonfigurovat a používat VPS jako vzdálený repozitář pro váš Git projekt. VPS může automaticky nasazovat nejnovější kódy a soubory bez jakéhokoli složitého procesu. Může také fungovat jako centrum pro spolupráci mezi více vývojovými týmy.
S pomocí Gitu můžete vytvořit jednoduchý mechanismus pro automatické nasazení. Pro správné řízení projektů se však doporučuje použít něco jako GitLab. Následující příručka ukazuje instalaci a nasazení GitLabu na VPS který spravuje více projektů. Můžete se také podívat na jak nastavit kanály GitLab Continuous Integration (CI) na Ubuntu 20.04.
Příjemnou práci s počítačem!















Komentáře
Zatím žádné komentáře. Buďte první.