Zpět na blog

Jak nakonfigurovat automatické nasazení pomocí Git na VPS

Jak nakonfigurovat automatické nasazení pomocí Git na VPS

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ů.

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ářů:

Deployment with Git screenshot 1

Dále inicializujte Git repozitář:

Deployment with Git screenshot 2

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 :

Deployment with Git code screenshot 3

Změňte aktuální adresář na hooks:

Deployment with Git code screenshot 4

Nyní vytvořte skript 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ářů:

Deployment with Git code screenshot 6

Uložte soubor a zavřete editor. Nastavte soubor jako spustitelný:

Deployment with Git code screenshot 7

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:

Configuring the Local Machine

Deployment with Git code screenshot 8

sample Git project directory:

Nyní inicializujte repozitář:

Deployment with Git code screenshot 9

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:

sudo git remote

Pojďme to otestovat. Do adresáře projektu jsme přidali shell skript:

project directory

Dále přidejte soubor do projektu a proveďte commit:

Deployment with Git code screenshot 10

V dalším příkazu odešleme projekt na live server:

Deployment with Git code screenshot 11

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:

Nyní potřebujeme Git repozitář, který bude fungovat jako beta větev:

Inicializujte repozitář:

sudo git init

Stejně jako předtím naimplementujte post-receive skript:

sudo nano

Poté zadejte následující kód:

GNU nano

Uložte soubor a zavřete editor. Označte post-receive jako spustitelný soubor:

sudo chmod
  • 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:

A je to! Lokální repozitář je nyní nakonfigurován se vzdáleným beta repozitářem. Zkuste odeslat změny:

sudo git add
  • 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:

Poté můžete odeslat beta verzi do live:

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!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev je kreativní designér ve společnosti CloudSigma, který se zaměřuje na konzistentní firemní identitu prostřednictvím tradičních i inovativních marketingových kanálů. Je zdatný v propojování umělecké vize se strategickým marketingem za účelem vytváření působivých příběhů značky.

Komentáře

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