četvrtak, 25 aprila, 2024
Kako da...?

Vagrant (2. deo)

Autori: Ivan Radeljić i Stefan Nožinić

U prošlom broju pisali smo o prednostima korišćenja Vagranta pri podešavanju razvojnog okruženja. Istakli smo zašto svaki od članova tima ima koristi. Sada ćemo vam pokazati kako da instalirate Vagrant i kako da koristite Vagrant komande.

Instalacija

Najpre je potrebno da posetite stranicu http://www.vagrantup.com/downloads i da preuzmete odgovarajući paket za vaš operativni sistem i arhitekturu. Instaler će automatski dodati vagrant komandu u vaš sistemski PATH, tako da će komanda biti dostupna globalno u terminalu. Po završetku instalacije u terminalu napišite komandu:

vagrant -v

i program će vam ispisati verziju koja je instalirana.

Vagrant se takođe nalazi u riznicama paketa mnogih distribucija Linuksa, pa time možete Vagrant instalirati kao i svaki drugi paket koji instalirate za vašu distribuciju. Naprimer, ako koristite Ubuntu, procedura je sledeća – otvorite terminal i Vagrant instalirate upravnikom paketa na sledeći način:

sudo apt-get install vagrant

Ako imate bilo kakvih problema tokom instalacije, možete nas kontaktirati na našu adresu elektronske pošte libre [AT] lugons.org.

Inicijalizacija

Da biste uspešno integrisali Vagrant u vaš projekat, potrebno je prethodno instalirati Virtual boks (VirtualBox) ili neki drugi provajder. Potom treba pronaći i instalirati Vagrant kutije (Vagrant boxes). U zavisnosti od projekta, biramo odgovarajuću kutiju. Na internet adresi https://atlas.hashicorp.com/boxes/search možemo vršiti pretragu kutija. Za dodavanje nove kutije koristimo:

vagrant box add USER/BOX

Sada je sve spremno za inicijalizaciju projekta.

vagrant init USER/BOX

Ova komanda će kreirati Vagrant konfiguracionu datoteku (vagrantfile) u početnom direktorijumu projekta. Ova datoteka je sve što nam je potrebno da uspešno koristimo Vagrant dalje u projektu. Naravno, vagrantfile datoteka sadrži sve potrebne konfiguracije i, kada želimo da priključimo novog člana postojećem timu, dovoljno je da mu prosledimo vagrantfiledatoteku. Ovo možemo uraditi tako što ćemo tu datoteku podeliti na Git repozitorijumu ili nekom sistemu za timski razvoj softvera.

Up and running

U ovom stadijumu Vagrant okruženje je spremno za pokretanje. Koristimo komandu:

vagrant up

i naše virtuelno razvojno okruženje radi. Od ovog momenta sve promene u direktorijumu Vagrant projekta na host mašini će se automatski odraziti na naše virtuelno okruženje. Sinhronizacija na virtuelnoj mašini se izvršava u direktorijumu /vagrant. Ovo možemo proveriti tako što ćemo pristupiti virtuelnoj mašini preko SSH protokola. Komanda za to je:

vagrant ssh

Nakon ove komande i pristupanja virtuelnom okruženju, možemo koristiti sve nama dobro poznate Linuks terminalne komande. Po završetku rada koristićemo komandu:

vagrant halt

da bismo isključili virtuelnu mašinu i sačuvali sve promene. Postoji i komanda:

vagrant destroy

koja briše ceo projekat i sve zavisnosti koje smo instalirali, tako da ovu komandu koristite tek onda kada ste sigurni da je vaš rad na projektu završen.

Konfigracija

Kao što je već napomenuto, konfiguracija Vagrant mašine za konkretan projekat se obavlja u vagrantfile konfiguracionoj datoteci. Ova datoteka je Rubi (Ruby) skripta koja pruža konkretne informacije Vagrantu o tome koja se kutija koristi, koji se sistem automatske konfiguracije koristi (eng. provisioning) i slična podešavanja.

Ova datoteka treba da se postavi na sistem kontrola verzija (eng. version control system) i time će svaki član tima dobiti istu konfiguraciju i, jednostavno, komandom vagrant up dobiti okruženje kao i Vi.

Svaki projekat koji koristi Vagrant mašine treba da ima samo jedan vagrantfile. Ova konfiguraciona datoteka ne zavisi striktno od platforme koju koristite, osim ako se u njoj ne pozivate na funkcije koje su specifične za neku platformu, što je moguće, ali se retko radi i nije preporučljivo.

Kada pokrenete Vagrant, on traži vagrantfile u trenutnom direktorijumu. Ako tu ne pronađe konfiguracionu datoteku, on je traži u roditeljskom direktorijumu i tako dalje. Ovo je veoma korisno jer se možete kretati kroz direktorijume unutar vašeg projekta i uvek ćete moći da pozivate Vagrant bez potrebe da se vraćate u glavni direktorijum vašeg projekta.

Podrazumevani vagrantfile dobijate kada u trenutnom direktorijumu izvršite vagrant init. Ova konfiguraciona datoteka koristi Rubi sintaksu, ali znanje ovog programskog jezika nije potrebno da biste razumeli konfiguraciju i podesili istu u skladu sa vašim potrebama i potrebama vašeg tima i projekta.

Automatska konfiguracija

Vagrant podržava takozvani provisioning, odnosno automatsku konfiguraciju kutije prilikom prvog pokretanja. Ovo je veoma korisno jer ne morate praviti kutiju za svaki projekat, već, recimo, možete koristiti početnu Debijan konfiguraciju, a podesiti specifičnu konfiguraciju u zavisnosti od projekta. Postoji mnogo sistema za automatsku konfiguraciju. Najjednostavniji sistem je shell, odnosno da napravite skriptu koja će se pokrenuti prilikom prvog pokretanja mašine i podesiti automatski sve što ste naveli u njoj. Ovde možete instalirati svoje pakete koji su vam potrebni, podesiti veb-server i slično. Naravno, datoteke za sistem automatske konfiguracije morate takođe podeliti sa vašim timom kroz sistem kontrola verzija.

Pored shell pristupa moguće je koristiti i druge sisteme kao što je Ansibl, o kojem možete čitati u našem časopisu.

Sistem automatske konfiguracije, kao i specifični parametri za konkretan sistem, podešavaju se u vagrantfile-u .

U narednim brojevima ćemo detaljnije pričati o ovoj tematici, a preporučujemo vam i da konsultujete zvaničnu dokumentaciju i da se sami oprobate u konfigurisanju i eksperimentisanju.

Za sve nedoumice i probleme nas možete kontaktirati na našu adresu elektronske pošte.