Оболочка, управляющая системами виртуализации.
Бокс (box) - образ Vagrant (https://app.vagrantup.com/boxes/search).
Установка - https://www.vagrantup.com/docs/installation
mkdir -p vagrant cd vagrant # Инициализация, создание конфига (Vagrantfile), скачивание образа vagrant init generic/ubuntu2204 # Создался Vagrantfile с примерно таким содержимым: Vagrant.configure("2") do |config| config.vm.box = "generic/ubuntu2204" end # Запустить ВМ, атрибут - провайдер: vagrant up --provider=hyperv # Статус vagrant status # Логин с помощью vagrant ssh. Пароль для sudo — vagrant # Удалить ВМ vagrant destroy -f
Команды Vagrant - https://www.vagrantup.com/docs/cli
Параметры ВМ
config.vm.provider "hyperv" do |v| v.memory=4096 v.cpus=4 end` end
https://www.vagrantup.com/docs/providers/hyperv/configuration
Обычный скрипт на языке оболочки.
apt update apt install nginx -y systemctl enable nginx systemctl start nginx
В Vagrantfile нужно сослаться на provision file:
config.vm.provision "shell", path: "bootstrap.sh"
https://www.vagrantup.com/docs/provisioning/shell
Проброс порта
Vagrant.configure("2") do |config| config.vm.network "forwarded_port", guest: 80, host: 8080 end
https://www.vagrantup.com/docs/networking/forwarded_ports
# Запустить vagrant up # Или применить изменения, если уже запущено vagrant reload --provision