Articol preluat de pe ctrl-d.ro în scop de arhivare. Data inițială a publicării: 28 martie 2017.
Vrei o metodă rapidă și ușoară de configurare a unui mediu de dezvoltare, cu focus pe automatizare și ease-of-use? Renunță la XAMPP, WAMP, MAMP și încearcă Vagrant. Scuza clasică “la mine merge” va fi parte din trecut.
Vagrant este un sistem ce permite configurarea, distribuția și virtualizarea mediilor de lucru. Altfel spus, ai o metodă foarte rapidă prin care poți configura un mediu de dezvoltare, îl poți partaja ușor cu colaboratorii tăi și poți rula orice tool sau server ai nevoie în 2 timpi și 3 mișcări.
Cum? Din câteva comenzi bine scrise și câteva informații critice despre mediul tău de lucru dintr-un mic fișier ce poate fi “pasat” mai departe la colegii cu care vrei să lucrezi. La rândul lor colegii tastează câteva comenzi și gata, vor rula același mediu de lucru ca tine.
Înainte să intrăm în treburi tehnice
Vagrant înseamnă o persoană care nu s-a așezat la casa sa sau care se plimbă din loc în loc. Iată, până și numele descrie foarte bine și pe scurt ce face Vagrant.
De ce Vagrant?
Dacă ești developer, programator, coder sau cum vrei să-ți spui, pe scurt, scrii cod, Vagrant izolează proiectul de restul sistemului de operare printr-un fișier de configurare (numit Vagrantfile) care conține toate constantele mediului de dezvoltare.
Îți poți configura propriul mediu de dezvoltare sau poți folosi un template bun de lucru în câteva secunde (minute dacă este prima utilizare). Iată două liste cu astfel de template-uri, una oficială și alta third-party.
Eu personal folosesc WPDistillery (GitHub), pentru că în 90% din cazuri codez pentru WordPress, dar există și varianta mai light pentru general web stuff – Scotch Box.
Cel mai mare avantaj care vine odată cu Vagrant este faptul că pot să rulez același mediu de dezvoltare fie că sunt acasă, fie că sunt într-o cafenea sau într-un parc și am acces la aceleași date. De obicei proiectele la care lucrez în mod activ stau pe Dropbox, în folderul proiectului am Vagrantfile, fișierele publice ale proiectului și baza de date.
În CMD navighez în folderul proiectului, rulez vagrant up and that’s it. Hassle free work from anywhere, share with anyone. Ai terminat? vagrant suspend și proiectul tău este în siguranță, într-un stadiu de hibernare până la următoarea sesiune.
Cum încep?
Ai nevoie de 2 lucruri: VirtualBox (sau Hyper-V, Docker, VMware) și Vagrant. Ghidul de astăzi se bazează pe VirtualBox pentru că este gratuit, open-source și suficient de stabil.
După ce descarci și instalezi cele două programe deschide CMD și navighează în folderul proiectului tău.
Quick Tip: Pe Windows comanda cd funcționează doar împreună cu /D. Să zicem că proiectul tău este în D:\Dropbox\Workspace\nume_proiect, în CMD tastezi cd /D D:\Dropbox\Workspace\
Pentru web development recomand Scotch Box și voi continua ghidul cu pași pentru instalarea acestui box care se bazează pe Ubuntu 14.04 și rulează: PHP, Ruby, Git, cURL, Composer, Node, MySQL, PostgreSQL, SQLite, MongoDB, Memcached, Grunt, Bower, Yeoman, Gulp, Browsersync, Laravel și lista continuă.
git clone https://github.com/scotch-io/scotch-box.git nume_proiect
Unde nume_proiect este folderul proiectului (deci trebuie să navighezi până la D:\Dropbox\Workspace și creezi folderul nume_proiect din comanda git clone. Urmează un simplu vagrant up and that’s it!
Câteva tool-uri faine care merg împreună cu Vagrant
Vagrant Manager (este doar pentru OS X)
Funcții “ascunse”
Vagrant vine cu câteva funcții “ascunse”: vagrant push și vagrant share. Prin comanda push poți face deployment pe un server de staging sau production dintr-o singură comandă (și câteva linii de configurare în Vagrantfile.
Vagrant share este o alternativă pentru serverul de staging. În loc să urci proiectul pe un server de teste, pe care să vadă clientul site-ul, poți să-i trimiți un link de tipul http://ghastly-wombat-4051.vagrantshare.com pe care poate vedea exact ce lucrezi. Găsești mult mai multe trucuri și sfaturi pe paginile cu documentație.
Keep on coding!
Vagrant nu este doar un tool nice to have, este un must have pentru orice coder. Economisești mult timp, curba de învățare este aproape inexistentă, iar beneficiile sunt nenumărate.
Vagrant pare să fie destul de popular în rândul amicilor programatori, dar dacă totuşi lucrezi în branşă şi nu ai auzit de el, îți recomand să renunți la mediile tradiționale de development şi să-l încerci. There are many like it, but this one stands out!