Box при их установке загружаются из облака HashiCorp’s Vagrant Cloud.
Помимо официального облака можно использовать любые другие, в том числе и свои, box.
Имя box состоит из 2х частей – имени опубликовавшего его пользователя и непосредственно имени box
пользователь\название box
Помимо названия у box есть версия.
Для работы Vagrant требуется соответствующий гипервизор, таким образом его (например, virtualbox) требуется установить.
Установка самого Vagrant выполняется согласно официальной документации.
mkdir проект
cd проект
vagrant init
vagrant box list
vagrant box add
vagrant destroy
vagrant remove
mkdir проект
cd проект
Можно использовать существующую папку, например, с Ruby on Rails приложением (не выполнять mkdir).
Инициировать vagrant и использовать в качестве базы указанный box
vagrant init
Указанная выше команда, как и все команды Vagrant выполняется в папке конкретного проекта Vagrant.
Vagrant.configure("2") do |config|
config.vm.box = "hashicorp/precise64"
end
vagrant up
После разворачивания может потребоваться обновить версии VirtualBox additions (в старом базовом box может быть устаревшая версия).
vagrant suspend
vagrant halt
vagrant ssh
В запущенном образе папка /vagrant это папка ./vagrant в папке проекта Vagrant.
Всё что находится в этих папках синхронизируется между гостевой виртуальной машиной и хостом гипервизора.
Выполнить скрипт при разворачивании виртуальной машины
config.vm.provision :shell, path: "скрипт.sh"
В данном случае скрипт размещается в папке Vagrant проекта.
vagrant reload --provision
config.vm.network :forwarded_port, guest: 80, host: 4567
Packer - это утилита, с помощью которой можно создавать образ виртуальной машины (vagrant box) из iso образа установщика ОС. Установка packer описанеа на официальном сайт. Через chockolatey на Windows установка выглядит так
choco install packer
Образы можно создавать под несколько типов виртуальных платформ однавременно. Параметры необходимые packer build для построения образа виртуальной машины задаются в json файле. Например
packer\templates\windows_2008_r2_new.json
Такой образ может быть использован vagrant как base box для создания виртуальной машины.
packer build шаблон
Пример (образ создается только для virtualbox)
packer build --only=virtualbox-iso packer\templates\windows_2008_r2_new.json
В результате работы указанной выше команды будет создан файл с расширением .box (по сути это архив настроек виртуальной машины, диска этой машины и параметров vagrant). Этот образ можно добавить к текущему окружения vagrant следующей командой
agrant box add packer/builds/windows_2008_r2_*_0.1.0.box --name=metasploitable3-win2k8