Natrag na blog

Kako konfigurirati automatsku implementaciju s Gitom na VPS-u

Kako konfigurirati automatsku implementaciju s Gitom na VPS-u

Git je najpopularniji sustav za upravljanje verzijama u području razvoja softvera. Otvorenog je koda i aktivno ga od 2005. godine održava Linus Torvalds, poznati tvorac Linux. Danas nevjerojatan broj softverskih projekata (uključujući i komercijalne) koristi Git za upravljanje verzijama.

Git slijedi distribuiranu arhitekturu, što ga čini savršenim primjerom DVCS-a (distribuiranog sustava upravljanja verzijama). Koristeći Git, možemo istovremeno upravljati i lokalnim i udaljenim repozitorijem. U ovom vodiču prikazat ćemo kako konfigurirati automatsku implementaciju Git projekta s VPS-om.

Preduvjeti

U ovom vodiču postojat će jedan lokalni repozitorij i jedan udaljeni repozitorij na VPS-u. Lokalni repozitorij će slati promjene na udaljeni repozitorij. S udaljenog repozitorija možemo poslati promjene na beta ili  live granu. Kako biste to postigli, prvo se trebate pobrinuti za nekoliko preduvjeta.

Za uspostavljanje sigurne veze s VPS-om koristit ćemo SSH. Srećom, Git također podržava SSH kao protokol za povezivanje s udaljenim repozitorijima. Ovaj vodič istražuje konfiguriranje SSH-a za povezivanje s udaljenim poslužiteljima na Ubuntuu.

Konfiguriranje VPS-a

Na našem udaljenom poslužitelju imat ćemo sljedeću konfiguraciju:

  • Live direktorij: /var/www/dummy-domain.com
  • Repozitorij poslužitelja: /var/repo/site.git

S lokalnog računala, Git će slati ažuriranja na VPS repozitorij. Iz VPS repozitorija konfigurirat ćemo skriptu koju će Git koristiti za automatsko slanje u live direktorij. Također je moguće konfigurirati repozitorij za beta izdanja.

  • Stvaranje repozitorija

Povežite se s VPS-om i stvorite lokacije repozitorija:

Deployment with Git screenshot 1

Zatim pokrenite Git repozitorij:

Deployment with Git screenshot 2

Ovdje zastavica --bare označava da neće biti izvornih datoteka, već samo komponente za upravljanje verzijama.

  • Hooks

Zatim ćemo konfigurirati hooks za repozitorij. Svaki Git repozitorij sadrži mapu pod nazivom hooks. Sadrži primjere datoteka koje služe kao predložak za hooks i razne prilagođene radnje.

Prema Gitovoj službenoj dokumentaciji, postoje tri vrste hookova:

  • pre-receive: Izvršava se čim poslužitelj primi zahtjev za slanje (push).
  • post-receive: Izvršava se kada se zahtjev za slanje (push) dovrši.
  • update: Slično kao pre-receive. Međutim, izvršava se jednom po grani.

S lokacije repozitorija pokrenite naredbu ls naredbu:

Deployment with Git code screenshot 3

Promijenite trenutni direktorij u hooks:

Deployment with Git code screenshot 4

Sada stvorite skriptu post-receive skriptu:

Unutar skripte unesite sljedeći kod. Svakako promijenite lokacije direktorija u skladu s tim:

Deployment with Git code screenshot 6

Spremite datoteku i zatvorite uređivač. Postavite datoteku kao izvršnu:

Deployment with Git code screenshot 7

Sada, svaki put kada se slanje (push) dovrši, Git će pogledati u skriptu post-receive i postaviti datoteke na odgovarajuće mjesto.

Konfiguriranje lokalnog računala

Udaljeno računalo spremno je za prihvaćanje dolaznih ažuriranja Git projekta. Zatim ćemo konfigurirati lokalni repozitorij da koristi VPS kao udaljeni Git poslužitelj.

Napravimo ogledni direktorij Git projekta:

Configuring the Local Machine

Deployment with Git code screenshot 8

sample Git project directory:

Sada pokrenite repozitorij:

Deployment with Git code screenshot 9

Moramo deklarirati udaljenu putanju repozitorija. Ovdje ćemo se na udaljenu lokaciju referirati kao na live granu. Zatim pokrenite sljedeću naredbu:

sudo git remote

Isprobajmo to. Dodali smo shell skriptu u direktorij projekta:

project directory

Zatim dodajte datoteku u projekt i napravite commit:

Deployment with Git code screenshot 10

U sljedećoj naredbi, gurnut ćemo projekt na live poslužitelj:

Deployment with Git code screenshot 11

Git će se povezati s VPS-om pomoću SSH-a. Ako je SSH veza bila konfigurirana za korištenje lozinke, Git će tražiti lozinku za autentifikaciju.

Beta repozitorij

Što ako se projekt ne treba implementirati u jednom koraku? Možda zahtijeva daljnje testiranje unutar beta direktorija. Koristeći do sada opisanu metodu, možemo stvoriti još jednu granu na VPS-u, koja se naziva beta grana.

  • Konfiguriranje beta grane na VPS-u

Prvo moramo stvoriti direktorije za VPS. Povežite se na VPS i stvorite direktorij pod /var/www:

Sada nam treba Git repozitorij koji će djelovati kao beta grana:

Pokrenite repozitorij:

sudo git init

Baš kao i prije, implementirajte post-receive skriptu:

sudo nano

Nakon toga unesite sljedeći kod:

GNU nano

Spremite datoteku i zatvorite uređivač. Označite post-receive kao izvršnu datoteku:

sudo chmod
  • Dodavanje beta repozitorija na lokalno računalo

Sada smo spremni dodati beta repozitorij u naš lokalni repozitorij. Unutar lokalnog direktorija projekta pokrenite sljedeću Git naredbu:

Voila! Lokalni repozitorij sada je konfiguriran s udaljenim beta repozitorijem. Pokušajte gurnuti promjene:

sudo git add
  • Prijelaz s Beta na Live na VPS-u

Recimo da su sve promjene prikupljene u beta repozitorij. Kako gurnuti promjene u live repozitorij? Vrlo je jednostavno. Unutar beta repozitorija na VPS-u, dodajemo lokalni live repozitorij. Zatim jednostavno gurnemo beta izdanje u live repozitorij.

Povežite se na VPS i pokrenite sljedeće naredbe:

Zatim možete gurnuti beta izdanje na live:

sudo git push live master

Završne misli

Ovaj vodič uspješno prikazuje kako konfigurirati i koristiti VPS kao udaljeni repozitorij za vaš Git projekt. VPS može automatski implementirati najnoviji kod i datoteke bez ikakvog složenog procesa. Također može djelovati kao središte za suradnju između više razvojnih timova.

Uz pomoć Gita možete uspostaviti jednostavan mehanizam za automatsku implementaciju. Međutim, za pravilno upravljanje projektima preporučuje se korištenje nečeg poput GitLaba. Sljedeći vodič prikazuje instaliranje i implementaciju GitLaba na VPS-u koji upravlja s više projekata. Također možete pogledati kako postaviti GitLab Continuous Integration (CI) cjevovode na Ubuntu 20.04.

Sretno programiranje!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev je kreativni dizajner u CloudSigma, usredotočen na dosljedan poslovni identitet korištenjem tradicionalnih i inovativnih marketinških kanala. Vješt je u spajanju umjetničke vizije sa strateškim marketingom kako bi stvorio dojmljive brendirane priče.

Komentari

Još nema komentara. Budite prvi.