петак, 19 априла, 2024
Како да...?

Вагрант (2. део)

Аутори: Иван Радељић и Стефан Ножинић

У прошлом броју писали смо о предностима коришћења Вагранта при подешавању развојног окружења. Истакли смо зашто сваки од чланова тима има користи. Сада ћемо вам показати како да инсталирате Вагрант и како да користите Вагрант команде.

Инсталација

Најпре је потребно да посетите страницу http://www.vagrantup.com/downloads и да преузмете одговарајући пакет за ваш оперативни систем и архитектуру. Инсталер ће аутоматски додати vagrant команду у ваш системски PATH, тако да ће команда бити доступна глобално у терминалу. По завршетку инсталације у терминалу напишите команду:

vagrant -v

и програм ће вам исписати верзију која је инсталирана.

Вагрант се такође налази у ризницама пакета многих дистрибуција Линукса, па тиме можете Вагрант инсталирати као и сваки други пакет који инсталирате за вашу дистрибуцију. Например, ако користите Убунту, процедура је следећа – отворите терминал и Вагрант инсталирате управником пакета на следећи начин:

sudo apt-get install vagrant

Ако имате било каквих проблема током инсталације, можете нас контактирати на нашу адресу електронске поште libre [AT] lugons.org.

Иницијализација

Да бисте успешно интегрисали Вагрант у ваш пројекат, потребно је претходно инсталирати Виртуал бокс (VirtualBox) или неки други провајдер. Потом треба пронаћи и инсталирати Вагрант кутије (Vagrant boxes). У зависности од пројекта, бирамо одговарајућу кутију. На интернет адреси https://atlas.hashicorp.com/boxes/search можемо вршити претрагу кутија. За додавање нове кутије користимо:

vagrant box add USER/BOX

Сада је све спремно за иницијализацију пројекта.

vagrant init USER/BOX

Ова команда ће креирати Вагрант конфигурациону датотеку (vagrantfile) у почетном директоријуму пројекта. Ова датотека је све што нам је потребно да успешно користимо Вагрант даље у пројекту. Наравно, vagrantfile датотека садржи све потребне конфигурације и, када желимо да прикључимо новог члана постојећем тиму, довољно је да му проследимо vagrantfileдатотеку. Ово можемо урадити тако што ћемо ту датотеку поделити на Гит репозиторијуму или неком систему за тимски развој софтвера.

Up and running

У овом стадијуму Вагрант окружење је спремно за покретање. Користимо команду:

vagrant up

и наше виртуелно развојно окружење ради. Од овог момента све промене у директоријуму Вагрант пројекта на хост машини ће се аутоматски одразити на наше виртуелно окружење. Синхронизација на виртуелној машини се извршава у директоријуму /vagrant. Ово можемо проверити тако што ћемо приступити виртуелној машини преко SSH протокола. Команда за то је:

vagrant ssh

Након ове команде и приступања виртуелном окружењу, можемо користити све нама добро познате Линукс терминалне команде. По завршетку рада користићемо команду:

vagrant halt

да бисмо искључили виртуелну машину и сачували све промене. Постоји и команда:

vagrant destroy

која брише цео пројекат и све зависности које смо инсталирали, тако да ову команду користите тек онда када сте сигурни да је ваш рад на пројекту завршен.

Конфиграција

Као што је већ напоменуто, конфигурација Вагрант машине за конкретан пројекат се обавља у vagrantfile конфигурационој датотеци. Ова датотека је Руби (Ruby) скрипта која пружа конкретне информације Вагранту о томе која се кутија користи, који се систем аутоматске конфигурације користи (енг. provisioning) и слична подешавања.

Ова датотека треба да се постави на систем контрола верзија (енг. version control system) и тиме ће сваки члан тима добити исту конфигурацију и, једноставно, командом vagrant up добити окружење као и Ви.

Сваки пројекат који користи Вагрант машине треба да има само један vagrantfile. Ова конфигурациона датотека не зависи стриктно од платформе коју користите, осим ако се у њој не позивате на функције које су специфичне за неку платформу, што је могуће, али се ретко ради и није препоручљиво.

Када покренете Вагрант, он тражи vagrantfile у тренутном директоријуму. Ако ту не пронађе конфигурациону датотеку, он је тражи у родитељском директоријуму и тако даље. Ово је веома корисно јер се можете кретати кроз директоријуме унутар вашег пројекта и увек ћете моћи да позивате Вагрант без потребе да се враћате у главни директоријум вашег пројекта.

Подразумевани vagrantfile добијате када у тренутном директоријуму извршите vagrant init. Ова конфигурациона датотека користи Руби синтаксу, али знање овог програмског језика није потребно да бисте разумели конфигурацију и подесили исту у складу са вашим потребама и потребама вашег тима и пројекта.

Аутоматска конфигурација

Вагрант подржава такозвани provisioning, односно аутоматску конфигурацију кутије приликом првог покретања. Ово је веома корисно јер не морате правити кутију за сваки пројекат, већ, рецимо, можете користити почетну Дебијан конфигурацију, а подесити специфичну конфигурацију у зависности од пројекта. Постоји много система за аутоматску конфигурацију. Најједноставнији систем је shell, односно да направите скрипту која ће се покренути приликом првог покретања машине и подесити аутоматски све што сте навели у њој. Овде можете инсталирати своје пакете који су вам потребни, подесити веб-сервер и слично. Наравно, датотеке за систем аутоматске конфигурације морате такође поделити са вашим тимом кроз систем контрола верзија.

Поред shell приступа могуће је користити и друге системе као што је Ансибл, о којем можете читати у нашем часопису.

Систем аутоматске конфигурације, као и специфични параметри за конкретан систем, подешавају се у vagrantfile-у .

У наредним бројевима ћемо детаљније причати о овој тематици, а препоручујемо вам и да консултујете званичну документацију и да се сами опробате у конфигурисању и експериментисању.

За све недоумице и проблеме нас можете контактирати на нашу адресу електронске поште.