Домашнее задание 18

Vagrant

Основная ОС это windows 10, vagrant установлен именно на ней. В качестве гостевой OC используется Fedora Cloud 43

Подготовка

Устанавливаем Virtualbox

Устанавливаем vagrant

Скачиваем готовый box Fedora Cloud 43 по ссылке https://download.fedoraproject.org/pub/fedora/linux/releases/43/Cloud/x86_64/images/Fedora-Cloud-Base-Vagrant-VirtualBox-43-1.6.x86_64.vagrant.virtualbox.box

Импортируем скаченный box в vagrant

PS C:\Users\Alex\vagrant> vagrant box add --name fedora/43-1.6 C:\Users\Alex\Downloads\Fedora-Cloud-Base-Vagrant-VirtualBox-43-1.6.x86_64.vagrant.virtualbox.box

Проверяем, что образ импортировался нормально

PS C:\Users\Alex\vagrant> vagrant box list
fedora/43-1.6 (virtualbox, 0, (amd64))

Создание Vagrantfile

Зададим следующие характеристики для VM

  • CPU - 1
  • Memory - 1024mb

Добавим 2 дополнительных HDD по 1Gb

Пробросим порт 8080 с хостовой машины в гостевую на 80 порт.

После запуска VM в provision пропишим следующие действия:

  1. Обновление пакетов
  2. Установка nginx
  3. Форматирование дополнительных дисков в ext4
  4. Прописываем автомонтирование дисков в /mnt/disk1 и /mnt/disk2

Готовый Vagrantfile

Запуск VM

Сохраняем готовый Vagrantfile вновую директорию, и страртуем vagrant

PS C:\Users\Alex\vagrant> vagrant up
Bringing machine 'Fedora-cloud' up with 'virtualbox' provider...
==> Fedora-cloud: Importing base box 'fedora/43-1.6'...
==> Fedora-cloud: Matching MAC address for NAT networking...
==> Fedora-cloud: Setting the name of the VM: fedora-test-vagrant
==> Fedora-cloud: Clearing any previously set network interfaces...
==> Fedora-cloud: Preparing network interfaces based on configuration...
    Fedora-cloud: Adapter 1: nat
==> Fedora-cloud: Forwarding ports...
    Fedora-cloud: 80 (guest) => 8080 (host) (adapter 1)
...

...
    Fedora-cloud: Allocating group tables: done
    Fedora-cloud: Writing inode tables: done
    Fedora-cloud: Creating journal (8192 blocks): done
    Fedora-cloud: Writing superblocks and filesystem accounting information: done
PS C:\Users\Alex\vagrant>

После проверим, какие порты прокинуты в VM

PS C:\Users\Alex\vagrant> vagrant port
The forwarded ports for the machine are listed below. Please note that
these values may differ from values configured in the Vagrantfile if the
provider supports automatic port collision detection and resolution.

    80 (guest) => 8080 (host)
    22 (guest) => 2222 (host)
PS C:\Users\Alex\vagrant>

Видно что порт 8080 проброшен

Подключимся в VM, и проверим монтирование дисков

PS C:\Users\Alex\vagrant> vagrant ssh
[vagrant@localhost ~]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda4       3.0G  969M  1.6G  38% /
devtmpfs        448M     0  448M   0% /dev
tmpfs           475M     0  475M   0% /dev/shm
tmpfs           190M  596K  190M   1% /run
tmpfs           1.0M     0  1.0M   0% /run/credentials/systemd-journald.service
tmpfs           475M  4.0K  475M   1% /tmp
/dev/sda3       1.9G   87M  1.7G   5% /boot
/dev/sda2       100M   21M   80M  21% /boot/efi
/dev/sda4       3.0G  969M  1.6G  38% /home
/dev/sda4       3.0G  969M  1.6G  38% /var
tmpfs           1.0M     0  1.0M   0% /run/credentials/systemd-resolved.service
tmpfs           1.0M     0  1.0M   0% /run/credentials/getty@tty1.service
vagrant         465G  199G  266G  43% /vagrant
/dev/sdb        974M  280K  906M   1% /mnt/disk1
/dev/sdc        974M  280K  906M   1% /mnt/disk2
tmpfs            95M   16K   95M   1% /run/user/1000
tmpfs           1.0M     0  1.0M   0% /run/credentials/serial-getty@ttyS0.service

Видим, что диски примонтированы в каталоги /mnt/disk1 и /mnt/disk2

На основной ОС открываем в браузере ссылку http://127.0.0.1:8080/ и видим тестовую страницу nginx с гостевой VM 18_1

Все готово!

Description
No description provided
Readme 131 KiB