Vagrant — свободное и открытое программное обеспечение для создания и конфигурирования виртуальной среды разработки. Является обёрткой для программного обеспечения виртуализации, например VirtualBox или Wmware, и средств управления конфигурациями, такими как Chef, Salt и Puppet.
Vagrant was started in January 2010 by Mitchell Hashimoto. For almost three years, Vagrant was a side-project for Mitchell, a project that he worked on in his free hours after his full-time job. During this time, Vagrant grew to be trusted and used by a range of individuals to entire development teams in large companies.
Virtualbox можно скачать на официальном сайте https://www.virtualbox.org/wiki/Downloads
Последнюю версию vagrant 1.8.6 для debian, mac os, cent os, windows можно скачать https://www.vagrantup.com/downloads.html
Ubuntu.
Скачиваем, устанавливаем. Обновляем.
$ dpkg -i vagrant_1.8.6_x86_64.deb $ apt-get update
Боксы практически любых систем можно скачать на официальном сайте hashicorp https://atlas.hashicorp.com/boxes/search$ vagrant box add USER/BOX
For example: vagrant box add hashicorp/precise64
.
You can also quickly initialize a Vagrant environment with vagrant init hashicorp/precise64
.
Windows.
Если хотим запускать vagrant из под windows — добавляем bin в PATH переменную.
vagrant --help //проверка работоспособности
vagrant box add ubuntu/trusty6 //установка бокса ubuntu 64x
Все настройки запуска бокса хранятся в файле vagrantfile в папке, где мы инициализировали бокс. Файл конфигурации написан на языке ruby, в нем хранятся все настройки ip адреса (проброс необходимых портов), настройка поставщика виртуализации (virtual box, wmware, esx и тд). Все строчки в этом файле имеют комментарии, поэтому настройка внешнего айпи адреса, проброс нужных портов, выставления параметров запуска с нужного провайдера и автоматически инсталляция нужного программного обеспечения — не составит никаких проблем.
vagrant up //включаем машину
По умолчанию ssh адрес машины будет 127.0.0.1: 2222 (порт 2222).
Подключаемся к машине по ssh c помощью программы putty (так как команда ssh username@yoursite через терминал не работает)
Скачать программу PuTTY (the SSH and Telnet client) можно на официальном сайте (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.htm)
Порт 2222 хостовой машины перенаправляется на 22 порт гостевой машины.
Раскоментируем несколько строчек, отвечающие за сеть, в vagrantfile:
config.vm.network "forwarded_port", guest: 80, host: 8080 // перенаправление 80 порта
config.vm.network "public_network" // режим работы сети - мост
И после этого мы можем накатывать различные службы: apache2, nginx, phpmyadmin, sql, samba, ftp и тд
Чтобы резолвить по имени — правим на хостовой машине hosts (C:\Windows\System32\drivers\etc)
Кто-то подключает виртуальную машину, как удаленный жесткий диск и с помощью github отправляет commit, кто-то через ftp подключает к phpshtorm, или просто как share папку.
Команды, которые часто используются в vagrant:
#Команда, которая включает виртуальную машину
vagrant up
#Команда, которая выключает виртуальную машину
vagrant halt
#Команда, которая перенастроит виртуальную машину
vagrant provision
#Команда, которая удалит все файлы виртуальной машины
vagrant destroy
#Подключение к виртуальной машине по SSH
vagrant ssh
#Статус vagrant машины
vagrant status
По умолчанию, если выбран provision- Virtualbox, то образы разворачиваются в папке C:\Users\USER_NAME\VirtualBox VMs\FOLDER_VM
Более подробно про Vagrant написано в книжке «Vagrant: Up and Running: Create and Manage Virtualized Development Environments 1st Edition»