4.5 KiB
Домашнее задание 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 пропишим следующие действия:
- Обновление пакетов
- Установка nginx
- Форматирование дополнительных дисков в ext4
- Прописываем автомонтирование дисков в /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

Все готово!