WebDev → Основы Vargrant, пример использования

Vagrant — это менеджер ваших виртуальных окружений для разработки, надсройка (Command Line Interface) над системами виртуализаци VirtualBox (VMWare, LXC и т.д), которая обеспечивает быстрое создание и настройку виртуальных машин.

vagrant

Созданные виртуальные машины используются часто разработчиками web-приложений для построения необходимой среды разработки. Затем они могут быть упакованы в специальные контейнеры (боксы), для установки и использования другими разработчиками в команде.

Vagrant полностью зависит от программы виртуализации, например VirtualBox. Для развертывания и настройки виртуальных окружений Vagrant использует технологии виртуализации и технологии автоматицированного развертывания приложений от Chef и Puppet.

Грубо говоря, Vagrant позволяет с помощью заранее подготовленных инструкций развернуть виртуалку с необходимым ПО на вашем локальном компьютере. Это утилита которая говорит “создать виртуалку”, “запустить виртуалку”, “установи такое-то ПО”, “сделай такие-то настройки” и так далее.

Основные понятия

Provider — используемая система для виртуализации (VirtualBox, VMWare, LXC). По умолчанию используется VirtualBox.

Vagrant Box — это сохраненный образ ВМ, для быстрого клонирования виртуальных машин. Брать можно тут https://atlas.hashicorp.com/boxes/search или тут http://www.vagrantbox.es/.
На основе бокса будут создаваться виртуальные машины. Сами боксы при этом не изменяются. Размер боксов варьируется от 200 Мб до 2,5 Гб. Когда вы архивируете состояние вашей ВМ, на выходе также получаете бокс.

Vagrantfile — это файл конфигурации виртуальной машины, расположен в директории проекта. Он описывает настройки виртуальной машины, форвардинг портов, установку приложений, прочее. Содержимое файла это код на языке Ruby. Желательно держать этот файл в Git-репозитории.

Пример использования

Заходим в директорию проекта, добавляем “бокс” с Ubuntu, инициализируем Vagrant, правим при необходимости Vagrantfile с настройками и выполняем vagrant up для запуска виртуалки. Если все готово, подключаемся по ssh.

cd your_project
vagrant box add ubuntu/trusty64
vagrant init ubuntu/trusty64
vagrant up
vagrant ssh

Эти команды необходимы для запуска виртуальной машины с помощью Vagrant. Будет запущена полнофункциональная виртуальная машина на операционной системе Ubuntu с выделенным объемом памяти по умолчанию в 512 Мб.

Основные команды Vagrant

vagrant box list — cписок доступных (уже добавленных) боксов, на основе которых мы можем запускать нашу виртуалку
vagrant box add — добавление бокса, указываем название и ссылку для скачивания
vagrant init — инициализация, в текущем каталоге будет создан файл Vagrantfile, а сама виртуальная машина будет располагаться в дефолтном для VirtualBox каталоге
vagrant up — запускаем виртулаку, в том числе выполняются необходимы инструкции по настройке из конфига при первом запуске
vagrant ssh — подключение по SSH к виртуалке
vagrant package — создание пакета текущего виртуального окружения готового к развертыванию на другом компьютере
vagrant reload — перезагрузить виртуалку
vagrant suspend — уход в спящий режим с сохранением текущего состояния, возобнавление работы происходит очень быстро но требуется место на диске
vagrant resume — возобновления работы из спящего режима
vagrant halt — выключить виртуалку, обычное завершение работы; состояние системы не сохраняется, запуск через vagrant up
vagrant destroy — завершение работы с очисткой места на диске, которое занимало запущенное виртуальное окружение (обычно не рекомендуется использовать)
vagrant provision — подготовить окружение виртуальной машины (“provision” — обеспечение), запустить необходимые инструкции по установке и настройке ПО с помощью иснтрукций Chef или Puppet; эта команда зачастую используется при внесенных изменениях в конфигурацию.