====== 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