Vagrant — это средство для управления виртуальными средами. Vagrant полностью решает такие проблемы, как: у вас на компьютере сайт работает, а на сервере нет. Или когда код написанный вашим колегой работает у него, но не хочет работать у вас.
Как устроен Vagrant
Основа Vagrant’а — это box’ы. Box — это файл с полностью настроенной и готовой к использованию виртуальной средой. Например, я в работе использую связку Nginx + PHP-FPM + MySQL (LEMP) и у меня есть готовый box, который настроен идентично моему рабочему серверу. Box’ы удобно передавать коллегам для обеспечения идентичной среды разработки у всей команды.
Все настройки виртуальной машины (сколько выделять памяти, какие каталоги делать общими с вашей основной системой и пр.) содержатся в одном файле, который называется Vagrantfile. Также с помощью этого файла можно указать какие команды должны быть выполнены при первом запуске Vagrant. Например, можно создать базу данных с определённым именем или настроить Nginx.
Как пользоваться Vagrant
Vagrant используется из командной строки. Команды лакончины, просты для запоминания и логичны. Так, например, чтобы запустить виртуальную среду достаточно выполнить команду: vagrant up
. Обычно, последовательность работы с Vagrant выглядит следующим образом:
- устанавливаем нужный нам box командой
vagrant box add [имя box'а]
; - создаём Vagrantfile командой
vagrant init
и настраиваем его; - запускаем Vagrant командой
vagrant up
; - после работы останавиливаем Vagrant командой
vagrant halt
; - когда проект закончен, удаляем виртуальную среду командой
vagrant destroy.
Vagrant обладает одним очень удобным инструментом. Сайт, работающий в вирутальной среде Vagrant, можно сделать доступным через интернет. Делается это очень просто, командой vagrant share
. Подробности можно прочитать на сайте с документацией.
Где взять box’ы
Тысячи готовых box’ов на все случаи жизни можно найти на сайте HashiCorp. Кроме настроенных сред там есть чистые установки популярных операционных систем. Такие box’ы можно использовать как основу для своего собственного box’а, если нужно что-то специфичное. Собственные box’ы также можно распространять, если зарегистрироваться на указанном выше сайте.