# Домашнее задание 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 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 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](Vagrantfile) ### Запуск VM Сохраняем готовый [Vagrantfile](Vagrantfile) вновую директорию, и страртуем vagrant ```ps 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 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 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](images/18_1.png) Все готово!