Vagrant — ПО для создания и настройки виртуальной среды. Vagrant является надстройкой для VirtualBox, vmWare, Hyper-V и т.д.
Основные элементы Vagrant:
- Boxes — сжатые образы виртуальных машин. Один образ можно использовать несколько раз (аналог iso- файла)
- cli — консольные команды для управления средой
- VagrantFile — файл с описанием конфигурации
- Plugins — отдельные компоненты, которые упростят работу. Например можно поставить надстройку над vmWare и управлять машинами через Vagrant
Установка VirtualBox и Vagrant у меня не вызвала проблем, кроме той, что я ставил их рядом с vmWare, как получилось установить я рассказывал тут.
Попробуем развернуть простую виртуальную машину c CentOS 7. Для этого сначала проверим что vagrant работает корректно, а потом запросим VagrantFile
vagrant status
vagrant init centos/7

После инициализации centos/7 в текущий каталог загружается VagrantFile, который содержит настройки виртуальной машины. Для загрузки VagrantFile с популярными ОС надо вписать следующие команды:
- Debian 10 Buster — vagrant init debian/buster64
- CentOS 6 — vagrant init centos/6
- CentOS 7 — vagrant init centos/7
- CentOs 8 — vagrant init centos/8
- Ubuntu 20.04 — vagrant init ubuntu/bionic64
- Ubuntu 18.04 — vagrant init bento/Ubuntu-18.04
- Ubuntu 16.04 — vagrant init ubuntu/xenial64
После того, как VagrantFile находится у нас в каталоге, необходимо запустить среду командой vagrant up. При первом запуске будет загружен Box c ОС. Далее эта команда будет просто включать ВМ.

Далее мы можем подключиться к виртуальной машине через SSH с помощью команды vagrant ssh. Подключение происходит по ssh-ключу логина и пароля нет

Подключившись по SSH, мы увидели версию CentOS 7 и базовые характеристики ВМ. Также виртуальной машиной можно управлять с помощью следующих команд:
- vagrant halt — выключить ВМ
- vagrant suspend — приостановить ВМ
- vagrant reload — перезагрузить ВМ и применить конфигурацию из VagrantFile
- vagrant destroy <имя машины> — удалить ВМ (Если ВМ одна можно писать просто vagrant destroy)
- vagrant destroy -f — удалить все виртуальные машины
Если нас не устраивает базовая конфигурация виртуальной машины, то нам необходимо изменить VagrantFile следующим образом:
Vagrant.configure("2") do |config|
#Указываем ОС и версию виртулаьной машины
config.vm.box = "centos/7"
#Запрещаем проверку обновлений с сервера
config.vm.box_check_update = false
#Пробрасываем Web-порт виртуальной машины на loacalhost:8080
config.vm.network "forwarded_port", guest: 80, host: 8088
#При запуске ВМ будет открываться VirtualBox
# config.vm.provider "virtualbox" do |vb|
# vb.gui = true
# end
#Указываем имя, отображаемое в VirtualBox
config.vm.provider "virtualbox" do |v|
v.name = "C7-vagrant"
end
#Изменяем параметры виртуальной машины
config.vm.provider "virtualbox" do |v|
v.memory = 1024
v.cpus = 2
end
#Выполнить следующий скрипт при старте вм
config.vm.provision "shell", inline: <<-SHELL
yum update
yum install -y nginx
setenforce 0
service firewalld stop
SHELL
end
После изменения VagrantFile необходимо проверить файл на наличие ошибок командой vagrant status, и, если нет ошибок перезапустить ВМ с применением настроек vagrant reload