Vagrant

Vagrant- обертка для работы с системами виртуализации — чаще всего используется с VirtualBox в качестве CLI (интерфейса командной строки). Настройка Vagrant осуществляется через конфигурационный файл пакета или через передачу флагов в командной строке, что более удобно.

 

 

Установка и настройка vagrant

Vagrant — средство автоматизации работы с виртуальными машинами,  позволяет быстро создавать машины указывая в качестве образа box-файл, который содержит всю необходимую информацию и устанавливает все компоненты виртуальной среды. Машине можно задать IP-адрес и настроить при необходимости форвардинг портов, конечно внутрь машины можно попасть авторизовавшись под пользователем с sudo по ssh.

 

Vagrant — это гем Ruby, поэтому прежде всего потребуется пакетный менеджер RubyGems (можно обойтись и без него, но работать так несколько проще)

 

Пакет скачивается с официального сайта при помощи wget

Затем перейдя в каталог нужно выполнить от имени root или пользователя с sudo:

ruby setup.rb

ln -s /usr/bin/gem[*VERSION*] /usr/bin/gem

 

 

Если пакет уже был установлен его следует обновить до последней версии

gem update —system

 

Теперь устанавливаем сам vagrant

gem install —version '= 0.6.9' vagrant

 

Образами vagrant являются box файлы, которые можно скачать и указывать при создании машин.

Для примера скачаем при помощи wget один из образов

wget files.vagrantup.com/lucid32.box

Это Ubuntu 14.04 с 512 МБ ОЗУ и 40 ГБ жесткого диска с текущей директорией проброшенной в /vagrant виртуальной машины и портом 22222 на 22 гостевого хоста.

 

Создаем конфигурацию машины (cucid32 здесь — ее имя)

vagrant box add cucid32 /home/vagrant/lucid32.box

 

 

На практике vagrant часто используется с приложениями на ruby-on-rails. Создадим приложение и перейдем внутрь появившегося каталога

rails new app

cd app

В нем теперь можно создать виртуальную машину

vagrant init lucid32

В корне проекта при этом создастся Vagrantfile ( в нем среди прочего запись config.vm.box = «lucid32»)

 

Включаем гостевой хост

vagrant up

 

Внутрь можно попасть выполнив

vagrant ssh

 

Вывод whoami покажет, что используется профиль пользователя vagrant с правами sudo

Рассмотрим одну из самых частых задач — форвардинг портов (например, для rails приложения).

 

mcedit Vagrantfile

config.vm.forward_port «rails», 3000, 3000

 

Выходим из машины в гостевую систему

exit

 

Перезагружаем гостевую машину

vagrant reload

 

В каталоге /vagrant стартуем приложение на rails

cd /vagrant

bundle exec rails s

netstat покажет, что порт 3000 успешно пробросился на порт 3000 гостевого хоста.

 

 

Самые распространенные команды для работы с оболочкой:

  • vagrant status — выводит статус
  • vagrant suspend — приостанавливает работу машины
  • vagrant resume — возобновляет работу после suspend
  • vagrant hault — выключает машину
  • vagrant package — создает образ помещая его в box файл
  • vagrant destroy — уничтожает vagrant машину