Lokális fejlesztői környezet percek alatt

Jobban szeretsz kódot írni, mint a fejlesztői környezeted folyton az éles rendszerhez igazítani? Mert ugye a kettő mindig “elmászik” egymástól… És persze a kód a Te gépeden mindig jól lefut… Szeretnéd, ha a lokális környezeted teljesen megegyezne a többiekével? Már nem emlékszel pontosan milyen függőségeket telepítettél lokálisan, csak hogy működjön a szoftvered?

Mindezekre remek megoldás, ha a lokális környezeted konfigurációját is kódban tárolod.

Fejlessz Linuxon, Windows-on, vagy Mac-en, a virtualizációt megoldhatod az ingyenesen elérhető VirtualBox segítségével. Ez azonban még nem elég. Használj Vagrant-ot!

OK, de mi az a Vagrant?

A Vagrant egy a VirtualBox-ra épülő megoldás, ahol egy egyszerűen szerkeszthető konfigurációs fájlban leírhatod, hogy milyen operációs rendszert szeretnél virtuálisan feltelepíteni, kiválasztod hozzá a beállításokat és az extra csomagokat. Eztuán bármennyi példányt indíthatsz a leírt konfiguráció alapján, és azok 100%-ban megegyezőek lesznek.

De ne szaladjunk ennyire előre, nézzük a hozzávalókat!

  • Töltsd le és telepítsd – ha még nincs fent – a VirtualBox legújabb verzióját. Itt találod: http://www.virtualbox.org

Ezzel már létre tudsz hozni virtuális gépeket, környezeteket, amelyek kezdetben ugyanolyanok, mint a teszt- és az éles környezetben. Hurrá!

De ez még csak az első lépés. Biztosítanod kell azt is, hogy az éles környezet összes függőségét pontosan ugyanúgy lokálisan is feltelepítsed. Erre megoldás lehet, ha valamilyen központi konfiguráció-menedzsment szoftvert használsz (pl. Puppet, Chef).

Lokálisan erre jó a Vagrant.

Ezután elkezdheted a konfigurálást.

Először is, szükséged lesz van egy “Vagrantfile” nevű konfigurációs file-ra. Ez egy Ruby szintaxist követő file, kiterjesztés nélkül, a tartalma pedig így néz ki:

vagrant1

Az alap operációs rendszer (“base box”) egy már korábban elkészített Ubuntu 14.10 “image”. Ehhez hasonló alap image-eket letölthetünk a felhőből is, például innen:

A Vagrant file-ban megadod, hogy mi legyen a lokális virtuális gép domain neve, IP címe, mekkora memóriát használjon.

Ezután már csak 4 parancsra kell emlékezni:

  • vagrant up

Ezzel el is indul a virtuális gép, ami az első alkalommal néhány percig is eltarthat, viszont később csak néhány másoderc lesz.

…készülőben a lokális gép…

vagrant2

…mindeközben a VirtualBox felületén már fel is tűnik az új “box”:

vagrant3

A megosztott mappákhoz szükséges Guest Additions “magától” feltelepül. Yeah!

A korábban megadott hoszt név is bekerül a megfelelő file-okba…

vagrant4

Végül lefut egy shell script – ami a frissen feltelepített Linux-ra még feltelepíti azokat az alapcsomagokat, amikre mindenképpen szükségünk van. Eztuán lefut egy csomag-frissítés (apt-get update), biztos, ami biztos.

vagrant5

Készen is vagyunk. SSH-zunk is be rögtön.

A második Vagrant parancs tehát

  • vagrant ssh

Itt szerencsére nem kell emlékezned a usernevedre, IP címre és portra. Ha a megfelelő könyvtárban állsz, mindezt a Vagrant elintézi helyetted. Tehát egyszerűen csak vagrant ssh…

A Vagrant a megosztott mappákról is gondoskodik, tehát a hoszt operációs rendszeren dolgozhatsz a kedvenc editoroddal, Git-tel, a virtuális gépen mindent megtalálsz a “shared” mappában.

vagrant6

A VirtualBox felületén a futó virtuális gépet látod, minden rendben.

vagrant6

Végül, ha befejezted a munkát “exit”-tel elhagyhatod a virtuális gépet és a következő paranccsal ki is kapcsolhatod a gépet:

  • vagrant halt

vagrant8

Visszatérhetsz a hoszt gépre.

A másnap a szokásos rutinnal indulhat, de ezúttal már sokkal gyorsabban érsz el az SSH szakaszba:

  • vagrant up
  • vagrant ssh
  • exit
  • vagrant halt

A dolog szépsége, hogy a base image és a Vagrantfile könnyen megosztható másokkal, és VirtualBox alatt a kolléga gépén is villámgyorsan azonos környezet alakítható ki.

A base box file egy belső file-szerverre kerülhet, a Vagrantfile pedig egyenesen mehet a Git-be.

 

Jó játék a SCRUM!

Mint ahogy a legtöbb szervezeti átalakulás, ez sem egyik pillanatról a másikra történik. Ha tennél egy virtuális kirándulást a SCRUM…