Знакомство с Vagrant
Опубликовано пт, 27/05/2016 - 17:59
Vagrant — свободное и открытое программное обеспечение для создания и конфигурирования виртуальной среды разработки. Является обёрткой для программного обеспечения виртуализации, например VirtualBox, и средств управления конфигурациями, такими как Chef, Salt и Puppet. Инструмент написан на Ruby; при этом его можно использовать в проектах, создаваемых на других языках программирования, таких как PHP, Python, Java, C# и JavaScript[1].
Зачем же нужен вагрант? Почему просто не обойтись виртуальной машиной?
Конечно, можно обойтись, но с вагрантом все становится значительно проще. Несколько основных причин почему стоит его использовать:
- не нужно весь софт ставить руками (php, apache, mysql и т.д.), все то, что позволит развернуть полноценное окружение.
- легкий шаринг виртуалки между разработчиками (понадобится лишь Vagrantfile).
- вагрант позволяет создавать свои собственные боксы (слепки с готовой виртуальной машины, которые также можно “шарить” между коллегами). В этом случае вы можете пошарить виртуалку с развернутым сайтом, импортированной базой и файлами сайта.
В случае вагранта все окружение будет аналогичным у всех разработчиков, что позволяет избежать множества проблем и появление энвайроменто-зависимых багов (тех, которые воспроизводятся на конкретной локальной машине ввиду различного окружения). Особенно важно обеспечить безболезненный вход в проект новых членов команды, которые сразу начнут “вливаться” в проект, а не тратить долгие часы/сутки на настройку локального окружения.
Содержание
Установка Vagrant
Vagrant (на момент написания статьи имеет версию 1.8.1) поддерживает несколько программ виртуализации (в терминологии вагранта - провайдеров), а именно: VMware[2], VirtualBox[3], Docker[4], Hyper-V[5]. Есть возможность поддержки кастомного провайдера, как гласит документация[6]. В данной статье рассмотрим разворот виртуальной машины на базе VirtualBox. Далее предполагаю, что у вас уже установлен виртуалбокс, если нет, то настоятельно рекомендую это сделать ознакомившись со статьей Установка и настройка VirtualBox.
Установка рассмотрена на примере Windows 7. Скачиваем exe файл с официального сайта[7] и запускаем.
Окно приветствия установщика, жмем Next.
Подтверждаем, что принимаем лицензионное соглашение.
Указываем путь директории установки. В данном случае оставляем дефолтный и жмем кнопку Install
Процесс установки займет некоторое время.
После установки, Vagrant попросит перезагрузиться.
После перезагрузки, для того чтобы проверить работоспособность вагранта, запускаем командую строку и проверяем статус
1 |
vagrant -v |
В случае успешной установки сообщение будет таким
1 |
Vagrant 1.8.1 |
Создание окружения
Для того, чтобы создать окружение, достаточно проделать несколько шагов.
Во-первых, необходимо выбрать/создать папку на диске, в которой будет располагаться директория настроек окружения. Имя папки по возможности должно состоять из латиницы и не иметь в себе пробелов во избежания потенциальных проблем.
Далее открываем командую строку, переходим в нужную папку и запускаем команду
1 |
vagrant init precise64 http://files.vagrantup.com/precise64.box |
Рекомендую предварительно убедиться, что виртуалбокс на вашей машине поддерживает 64-bit ubuntu, в противном случае используйте 32-bit
1 |
vagrant init precise32 http://files.vagrantup.com/precise32.box |
После запуска данной команды в текущей папке будет создан Vagrantfile. Precise64 - означает готовый бокс (в данном случае будет установлена ubuntu 12.04 для 64-разрядной системы). Все готовые боксы можно посмотреть по ссылке[8], приведенной в конце статьи в разделе Дополнительная информация.
Запускаем команду
1 |
vagrant up |
После запуска данной команды, вагрант скачает нужный бокс, установит необходимое окружение.
В итоге, в интерфейсе VirtualBox появится созданная виртуальная машина.
Для того, чтобы подключиться к виртуальной машине через ssh достаточно выполнить простую команду из директории расположения файла Vagrantfile.
1 |
vagrant ssh |
Конфигурация PHPStorm для управления вагрантом
PHPStorm уже относительно давно поддерживает вагрант еще с 7 версии. Для конфигурации необходимо кликнуть по иконке настроек или пройти по пути через главное меню File → Settings. В открывшемся окне в поле Vagrant executable указываем путь до exe файла, для Instance folder — путь до папки с настройками для текущего проекта (путь до папки, где лежит Vagrantfile для данного проекта) и жмем кнопку Apply или ОК.
На этом настройка завершена, теперь мы можем легко управлять созданной виртуальной машиной. Доступные команды:
- up - запуск виртуальной машины
- reload- перезагрузка
- provision- запуск дополнительных скриптов (bash, Chef и т.д.) в настройках Vagrantfile
- suspend- постановка на паузу виртуалки
- resume- снятие с паузы
- halt- остановка машины
- destroy- удаление
Для выполнения данных команд через UI PHPStorm необходимо пройти через главное меню по пути Tools → Vagrant.
Эти же команды доступны через командную строку, только необходимо их выполнять из директории расположения Vagrantfile и ставить префикс vagrant перед командной, например
1 |
vagrant halt |
Дополнительная информация по статье
- https://ru.wikipedia.org/wiki/Vagrant - информация о вагранте на wikipedia
- https://www.vmware.com/ - официальный сайт VMware.
- https://www.virtualbox.org/ - официальный сайт VirtualBox.
- https://www.docker.io/ - официальный сайт Docker.
- https://www.microsoft.com/hyper-v - официальный сайт Hyper-V.
- https://www.vagrantup.com/docs/ - онлайн документация на вагрант.
- https://www.vagrantup.com/downloads.html - страница загрузок вагранта под разные операционные системы.
- https://atlas.hashicorp.com/boxes/search - готовые боксы для загрузки через Vagrantfile.
- Версии программных продуктов, используемых в статье: PHPStorm 2016.1, Vagrant 1.8.1, VirtualBox 5.0.10