Как с помощью Vagrant автоматически в VirtualBox создать виртуальную машину и простейший сайт, и открыть его из основной системы

Что такое Vagrant?
Vagrant — это надстройка, которая управляет виртуальными машинами в VirtualBox: создаёт, настраивает, подключает сеть, ставит ПО и т.п. Он работает из основной системы и использует VirtualBox "под капотом".
Vagrant нужно установить на хостовую систему (в моём случае это Windows), где у вас уже стоит VirtualBox.

1. Установка Vagrant на Windows

Перейдите на сайт: https://developer.hashicorp.com/vagrant/...
Выберите версию для Windows (AMD64) и установите, как обычную программу.
После установки откройте PowerShell или cmd и проверьте:
```cmd

vagrant --version

2. Создание Vagrant-проекта

```cmd

cd ~
mkdir my-vagrant
cd my-vagrant
vagrant init

Таким образом, в домашней директории пользователя Windows создадим папку проекта "my-vagrant", а команда "vagrant init" создаст в ней дефолтный файл Vagrantfile.

3. Автоматизация управления над Virtualbox

Отредактируйте Vagrantfile — замените содержимое файла на следующее:

# -*- mode: ruby -*-
Vagrant.configure("2") do |config|
  # Используем Ubuntu 22.04 LTS
  config.vm.box = "ubuntu/jammy64"

  # Настройка приватной сети с IP
  config.vm.network "private_network", ip: "192.168.33.10"

  # Установка Nginx и создание HTML-файла
  config.vm.provision "shell", inline: <<-SHELL
    # Установка nginx
    sudo apt-get update
    sudo apt-get install -y nginx

    # Создание простейшего index.html
    echo "<h1>Hello from Vagrant on Ubuntu 22.04</h1>" |
      sudo tee /var/www/html/index.html

    # Включение nginx
    sudo systemctl enable nginx
    sudo systemctl restart nginx
  SHELL
end

4. Запуск виртуальной машины

VirtualBox должен быть запущен
```cmd

vagrant up

В этом шаге Vagrant:
скачает образ Ubuntu,
настроит сеть,
установит nginx,
поместит HTML-файл,
запустит сервер.

Теперь в основной системе в браузере откроем:
http://192.168.33.10
должны увидеть сообщение "Hello from Vagrant on Ubuntu 22.04".
Если открыть VirtualBox, то в списке виртуальных машин появилась ещё одна (у меня это my-vagrant_default_1750920237706_14235).

5. Работа с созданной гостевой системой

В нормальной работе с Vagrant не стоит входить в ОС через VirtualBox вручную (но если очень хочется, то вот стандартные учётные данные для всех Vagrant-образов Ubuntu: логин: vagrant пароль: vagrant).
Вместо этого нужно использовать команду "vagrant ssh" из основной системы из папки проекта:
```cmd

cd ~\my-vagrant
vagrant ssh

таким образом зашли в гостевую систему через терминал хостовой системы:
vagrant@ubuntu-jammy:~$
посмотреть содержимое папки html:
```cmd

ls -l /var/www/html/

проверить версию nginx внутри виртуалки:
```cmd

nginx -v

посмотреть, какие ещё пакеты установлены:
```cmd

dpkg -l

выйти из виртуалки:
```cmd

exit

6. Добавление домена через hosts

Если нужно открыть сайт по домену из браузера из основной системы, например по url http://myproject.loc, отредактируем файл hosts, который находится по адресу C:\Windows\system32\drivers\etc\hosts
Добавьте в этот файл ещё одну строчку:

192.168.33.10 myproject.loc

Файл после этого должен выглядеть примерно так:

#
127.0.0.1 localhost
127.0.0.1 test.loc
192.168.1.4 mysite.loc
192.168.33.10 myproject.loc
::1 localhost

Сохраните изменения и закройте файл.
Теперь можно открыть сайт по адресу: http://myproject.loc