Vagrant на Ubuntu 20.04 — установка с VirtualBox

Vagrant — это инструментарий командной строки для создания и управления виртуальными машинами. Для работы Vagrant требуется гипervisор: VirtualBox, Hyper-V, Docker, KVM или VMware (через плагины). Чаще всего Vagrant используют для быстрого разворачивания воспроизводимых сред разработки.
В этой статье описаны шаги установки Vagrant на Ubuntu 20.04 с использованием VirtualBox в качестве гипervisора и пример создания виртуальной машины CentOS 8 через Vagrant.
Что нужно подготовить
- Ubuntu 20.04 с доступом к пользователю с sudo.
- Подключение к интернету для загрузки пакетов и box’ов Vagrant.
- Место на диске минимум 5–10 ГБ для образов и машин (зависит от box и данных).
Важно: Если вы используете окружение с аппаратной виртуализацией отключённой в BIOS/UEFI, VirtualBox может не работать корректно.
Установка VirtualBox
Откройте терминал (Ctrl+Alt+T) и обновите списки пакетов:
$ sudo apt updateЗатем установите VirtualBox:
$ sudo apt install virtualboxСистема может запросить подтверждение установки — введите Y и нажмите Enter. Установка может занять несколько минут в зависимости от скорости сети и компьютера.

После установки проверьте приложение в списке установленных программ — должно появиться приложение VirtualBox:

Если приложение видно в меню, VirtualBox установлен успешно.
Установка Vagrant
Установите Vagrant через apt:
$ sudo apt install vagrantПодтвердите установку при запросе (Y) и дождитесь завершения. Затем проверьте установленную версию:
$ vagrant --version
Вы увидите строку с номером версии, например: vagrant 2.x.x.
Создание виртуальной машины CentOS 8 через Vagrant
- Создайте каталог для проекта и перейдите в него:
$ mkdir ~/my-vagrant-project
$ cd ~/my-vagrant-project- Инициализируйте Vagrant-проект с использованием публичного box’а centos/8:
$ vagrant init centos/8Это создаст файл Vagrantfile в текущей папке. Откройте его текстовым редактором, чтобы при необходимости внести изменения (настройка провайдеров, порты, синхронизация папок).
- Поднимите машину:
$ vagrant upКоманда загрузит box (если он ещё не скачан), создаст и запустит виртуальную машину в VirtualBox.
Vagrant автоматически примонтирует текущую директорию проекта в гостевой системе по пути /vagrant.
- Подключитесь по SSH к машине:
$ vagrant ssh- Остановить виртуальную машину:
$ vagrant halt- Удалить созданную виртуальную машину и освободить ресурсы:
$ vagrant destroyБыстрая шпаргалка команд Vagrant
- vagrant init
— инициализировать проект - vagrant up — создать и запустить VM
- vagrant ssh — подключиться по SSH
- vagrant halt — остановить VM
- vagrant suspend — приостановить VM (сохранить состояние)
- vagrant resume — возобновить приостановленную VM
- vagrant destroy — удалить VM
- vagrant box list — список локальных box’ов
- vagrant box add
— добавить box локально - vagrant status — статус VM
Советы по настройке Vagrantfile
- Для выбора провайдера VirtualBox добавьте в Vagrantfile блок:
Vagrant.configure("2") do |config|
config.vm.box = "centos/8"
config.vm.provider "virtualbox" do |vb|
vb.memory = 2048
vb.cpus = 2
end
end- Для синхронизации других папок используйте config.vm.synced_folder.
- Для проброса портов: config.vm.network “forwarded_port”, guest: 80, host: 8080.
Отладка и типичные проблемы
Важно: Если vagrant up зависает на этапе провайдера или не может создать VM, проверьте логи VirtualBox и права доступа.
- Проблема: Vagrant не может найти провайдер VirtualBox
- Убедитесь, что VirtualBox установлен и доступен в PATH.
- Проверьте, что версия VirtualBox совместима с версией Vagrant.
- Проблема: Ошибка при загрузке box
- Можно вручную скачать box через vagrant box add <имя>
. - Проверьте сетевой доступ и прокси-настройки.
- Проблема: Ошибки привилегий при монтировании папки /vagrant
- На хосте под NFS/SMB проверьте конфигурацию NFS/SMB и права доступа.
- Проблема: SSH не подключается
- Запустите vagrant ssh-config, проверьте ключи и порт.
- Иногда помогает vagrant reload.
Когда Vagrant не подходит (контрпример)
- Если цель — легковесные изолированные контейнеры для продакшн‑деплоймента — лучше использовать Docker.
- Для сложных продакшн‑виртуализаций под KVM/QEMU имеет смысл работать напрямую с tools для libvirt.
Альтернативные подходы
- Docker + docker-compose — быстрые контейнерные окружения, меньшие накладные расходы.
- Multipass (для Ubuntu) — простое управление VM под разработку.
- Terraform + Packer — полноценная автоматизация создания образов и развёртывания в облаках.
Рекомендации по производительности
- Выделяйте минимум 2 ГБ RAM для гостевой ОС CentOS 8, лучше 4 ГБ для комфортной работы.
- Отключите ненужные GUI‑настройки в гостевой ОС, используйте headless режим, если работаете через SSH.
Роли и чеклист перед запуском проекта
Для разработчика:
- Установить VirtualBox и Vagrant.
- Клонировать репозиторий с Vagrantfile.
- Запустить vagrant up и проверить приложение.
Для инженера DevOps:
- Проверить совместимость версий VirtualBox и Vagrant.
- Настроить provision (Ansible/Chef/Puppet) в Vagrantfile.
- Добавить CI шаги для проверки reproducibility.
Мини‑методология разворачивания проекта
- Создать репозиторий с Vagrantfile и provision-скриптами.
- Установить Vagrant и провайдера (VirtualBox).
- Прогнать локальную сборку vagrant up и выполнить smoke tests.
- Зафиксировать используемые версии box и провайдера в документации.
Команды для удаления Vagrant
Чтобы полностью удалить Vagrant с Ubuntu 20.04:
$ sudo apt-get remove --auto-remove vagrantСистема запросит пароль sudo и подтверждение удаления. Этот шаг удалит пакет Vagrant, но оставит локальные проектные директории и скачанные box’ы в ~/.vagrant.d/boxes, если вы не удалите их вручную.
Важно: Для чистой деинсталляции удалите также каталоги проектов и ~/.vagrant.d, если они больше не нужны.
Краткий словарь терминов
- Box — предварительно созданный образ гостевой ОС для Vagrant.
- Provider — платформа виртуализации (VirtualBox, VMware, KVM и т.д.).
- Vagrantfile — конфигурационный файл проекта Vagrant.
Пример маршрута принятия решения
flowchart TD
A[Нужна локальная среда разработки?] -->|Да| B{Лёгкая или тяжёлая среда}
B -->|Лёгкая| C[Docker]
B -->|Тяжёлая/GUI/полная ОС| D[Vagrant + VirtualBox]
A -->|Нет| E[Использовать облачные сервисы]Контрольные сценарии (тесты приёмки)
- vagrant up успешно завершает процесс без ошибок.
- vagrant ssh позволяет подключиться и выполнить команду uname -a в гостевой системе.
- Проектная директория доступна внутри гостя по /vagrant и изменения файлов синхронизируются.
Резюме
В статье показано, как установить VirtualBox и Vagrant на Ubuntu 20.04, создать Vagrant‑проект и развернуть CentOS 8 внутри VirtualBox. Приведены основные команды, советы по настройке Vagrantfile и рекомендации по отладке. Для лёгких контейнерных сценариев стоит рассмотреть Docker, а для более сложной автоматизации — Terraform/Packer.
Важно: сохраняйте Vagrantfile и скрипты настройки в системе контроля версий — это гарантирует воспроизводимость окружений.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента