Настройка Vagrant


Рассмотрим как выполняется базовая настройка Настройка 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 с 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 на этом завершена.



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

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


Читайте также про менеджер пакетов Ruby RVM

Сказать спасибо