====== Vagrant ======
Оболочка, управляющая системами виртуализации.
Бокс (box) - образ Vagrant (https://app.vagrantup.com/boxes/search).
Установка - https://www.vagrantup.com/docs/installation
===== Cоздание VM =====
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
===== Настройка программ внутри VM (provision) =====
Обычный скрипт на языке оболочки.
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