cPanel pruža mogućnost jednostavnog kreiranja git repozitorijuma i automatske primene i puštanja u rad (deployment) svih izmena dodatih u git repozitorijum. Da bi se ovo postiglo, neophodno je da lokalni git repozitorijum sadrži .cpanel.yml fajl i da bude podešena autentifikacija lokalnog računara putem ssh ključa. Takođe je neophodno da na lokalnom računaru bude instaliran Git.
Uprošćeno govoreći, deploy opcija služi za pokretanje određenog niza radnji, koji uglavnom ima za cilj kopiranje završenog koda iz git repozitorijuma u direktorijum sa javno dostupnim sadržajem (web sajta).
Pre nego što nastavite dalje, preporučujemo vam da pročitate članak o kloniranju udaljenog Git repozitorijuma:
https://helpdesk.dreamweb.rs/sr/baza-znanja/article/kloniranje-udaljenog-git-repozitorijuma
I članak o kreiranju Git servera u cPanel nalogu:
https://helpdesk.dreamweb.rs/sr/baza-znanja/article/kreiranje-git-servera-u-cpanel-nalogu
Postoje dva načina za konfigurisanje repozitorijuma na cPanel-u:
U primeru koji sledi biće opisana oba načina konfigurisanja git repozitorijuma.
Za Pull deploy potrebno je da imate git repozitorijum na nekom od git hosting servisa. U ovom primeru koristićemo Github.
Nakon što je repozitorijum na Github-u pripremljen, potrebno je kopirati adresu i uneti je u cPanel polje sa adresom za kloniranje repozitorijuma.
Pri kloniranju repozitorijuma sa spoljnjeg git hosting servisa, repozitorijum od koga je kloniran novi repozitorijum će automatski dodat kao upstream, što znači da će nakon toga za ažuriranje klona biti potrebna samo jedna pull komanda.Više informacija o kloniranju udaljenog Git repozitorijuma možete naći u povezanom članku.
Deploy proces se obavlja uz pomoć fajla pod nazivom .cpanel.yml. Ovaj fajl definiše niz komandi koje bash interpreter operativnog sistema treba da izvrši. Naredbe unutar ovog fajla su navedene u yaml formatu.
Ovo je primer sadržaja jednog takvog fajla:
--- deployment: tasks: - DEPLOYPATH="/home/$USER/public_html" - /bin/cp index.html ${DEPLOYPATH}/index.html - /bin/cp -R ./css ${DEPLOYPATH}/css
Deploy fajl treba da bude dodat u osnovni direktorijum projekta, odnosno git repozitorijuma.
Kada je novi git repozitorijum napravljen, i deploy fajl se nalazi u osnovnom direktorijumu projekta, u cPanel-u će biti prikazana opcija Deploy HEAD Commit.
Klikom na ovu opciju pokreće se git deploy i izvršavaju se naredbe navedene u fajlu, onim redosledom kojim su navedene.
Nakon što je proces uspešno završen, biće prikazano obaveštenje o uspešno izvršenom deploy procesu.
U slučaju da je na Github-u napravljena izmena, potrebno je iz cPanel-a prvo kliknuti opciju Update from Remote pa tek nakon toga Deploy HEAD Commit.
Kako biste jednostavnije isprobali pull deploy možete klonirati naš primer sa github-a:
https://github.com/dreamwebhost/git-deploy
Napomena:
Ova opcija se može koristiti samo u paketima koji podržavaju pristup putem terminala, i imaju odobrenu ovu funkciju.
Za uspostavljanje push deploy radnog procesa, potrebno je prvo kreirati prazan repozitorijum putem cPanel-a: Prazan repozitorijum možete kreirati prema sledećem uputstvu:
https://helpdesk.dreamweb.rs/sr/baza-znanja/article/kreiranje-git-servera-u-cpanel-nalogu
Ukoliko posedujete na lokalnom računaru repozitorijum koji biste želeli da sinhronizujete sa cPanel nalogom, potrebno je da prvo dodate repozitorijum na cPanel-u kao remote. Nakon što je repozitorijum kreiran na cPanel-u u sekciji naslovljenoj sa "For an existing project …" biće prikazan ekran sa listom naredbi koje treba pokrenuti sa lokalnog računara kako bismo iz lokalnog repozitorijuma mogli da pošaljemo izmene na server.
cd /putanja/do/vašeg/repozitorijuma git remote add origin ssh://korisnik@example.com:2233/home/korisnik/repositories/demo git push -u origin master
Imajte u vidu da pre pokretanja git push naredbe treba obaviti checkout za branch koji želite da postavite na serveru.
Ukoliko se nov repozitorijum kreira iz cPanel-a, potrebno je da se taj repozitorijum klonira na lokalni računar i da se doda commit sa lokalnog računara, nakon čega se repozitorijum na serveru može ažurirati jednostavnom push komandom sa lokalnog računara. Nakon što su fajlovi repozitorijuma na serveru (worktree) ažurirani, potrebno je da se ulogujete na cPanel i u odeljku "Git Version Control" odaberete odgovarajući repozitorijum sa liste i kliknete dugme Deploy HEAD Commit, što će automatski pokrenuti deploy prema naredbama definisanim u .cpanel.yml fajlu.
Nakon što je repozitorijum kloniran na lokalni računar, možemo kreirati README.md kao i .cpanel.yml fajl sledećom naredbom:
echo -e "# Readme" > README.md touch '.cpanel.yml'
Nakon što su fajlovi dodati, možemo proveriti status fajlova komandom git status:
On branch master No commits yet Untracked files: (use "git add ..." to include in what will be committed) .cpanel.yml README.md nothing added to commit but untracked files present (use "git add" to track)
nakon toga treba da dodamo ove izmene u git i da ih komitujemo u lokalni repozitorijum:
git add -A git commit -m "Dodati fajlovi README.md i .cpanel.yml" git push
Nakon što je sadržaj git repozitorijuma na serveru ažuriran, potrebno je da se ulogujete na cPanel, i iz opcije manage git repozitorijuma kliknete dugme Deploy HEAD Commit, kako bi izmene iz .cpanel.yml fajla bile izvršene.
Ovim je uspešno izvršen deploy git repozitorijuma na cPanel. Imajte u vidu da u .cpanel.yml fajl mogu biti dodate samo one komande koje ne zahtevaju privilegije root korisnika.