Späť na blog

Ako nakonfigurovať automatické nasadenie pomocou Git s VPS

Ako nakonfigurovať automatické nasadenie pomocou Git s VPS

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.

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:

Deployment with Git screenshot 1

Ďalej inicializujte Git repozitár:

Deployment with Git screenshot 2

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:

Deployment with Git code screenshot 3

Zmeňte aktuálny adresár na hooks:

Deployment with Git code screenshot 4

Teraz vytvorte skript post-receive:

Do skriptu vložte nasledujúci kód. Uistite sa, že ste príslušne zmenili umiestnenia adresárov:

Deployment with Git code screenshot 6

Uložte súbor a zatvorte editor. Nastavte súbor ako spustiteľný:

Deployment with Git code screenshot 7

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:

Configuring the Local Machine

Deployment with Git code screenshot 8

sample Git project directory:

Teraz inicializujte repozitár:

Deployment with Git code screenshot 9

Musíme deklarovať vzdialenú cestu k repozitáru. Tu budeme na vzdialené umiestnenie odkazovať ako na live vetvu. Potom spustite nasledujúci príkaz:

sudo git remote

Poďme to otestovať. Do adresára projektu sme pridali shell skript:

project directory

Ďalej pridajte súbor do projektu a vykonajte commit:

Deployment with Git code screenshot 10

V nasledujúcom príkaze odošleme projekt na live server:

Deployment with Git code screenshot 11

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:

Teraz potrebujeme Git repozitár, ktorý bude fungovať ako beta vetva:

Inicializujte repozitár:

sudo git init

Rovnako ako predtým, implementujte post-receive skript:

sudo nano

Potom zadajte nasledujúci kód:

GNU nano

Uložte súbor a zatvorte editor. Označte post-receive ako spustiteľný súbor:

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

A je to! Lokálny repozitár je teraz nakonfigurovaný s beta vzdialeným repozitárom. Skúste odoslať zmeny:

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

Potom môžete odoslať beta verziu do live:

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!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev je kreatívny dizajnér v spoločnosti CloudSigma, ktorý sa zameriava na konzistentnú firemnú identitu prostredníctvom tradičných a inovatívnych marketingových kanálov. Dokáže brilantne spájať umeleckú víziu so strategickým marketingom, čím vytvára pôsobivé príbehy značky.

Komentáre

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