Установка Vagrant на Ubuntu 20.04/22.04/24.04 - Пошаговая инструкция | AdminWiki

Установка Vagrant на Ubuntu: Полное руководство для разработчиков и DevOps

18 декабря 2025 9 мин. чтения #devops #ubuntu #vagrant #virtualbox #виртуализация #разработка #установка
Содержание статьи

Что такое Vagrant и зачем он нужен?

Представь, что ты начинаешь новый проект. Ты скачиваешь код, пытаешься его запустить, но... ничего не работает. Потому что у тебя другая версия PHP, другой веб-сервер, другие настройки. Знакомая ситуация? Vagrant решает эту проблему раз и навсегда.

Vagrant — это инструмент для создания и управления виртуальными средами разработки. Он позволяет описать инфраструктуру в коде (Infrastructure as Code), а затем развернуть идентичную среду на любой машине. Давай разберем, как правильно выполнить установку Vagrant на Ubuntu.

Важно: Vagrant сам по себе не является системой виртуализации. Это надстройка над такими провайдерами, как VirtualBox, VMware, Hyper-V или Docker. В этом руководстве мы будем использовать VirtualBox как самый популярный и бесплатный вариант.

Подготовка системы Ubuntu к установке

Перед тем как начать установку Vagrant, убедись, что твоя система Ubuntu обновлена. Открой терминал и выполни следующие команды:

bash
sudo apt update
sudo apt upgrade -y
sudo apt install -y curl wget

Проверка поддержки виртуализации

Убедись, что твой процессор поддерживает аппаратную виртуализацию. Это необходимо для работы VirtualBox:

bash
# Проверка поддержки Intel VT-x/AMD-V
grep -Eoc '(vmx|svm)' /proc/cpuinfo

# Если результат больше 0 — виртуализация поддерживается
# Дополнительная проверка
kvm-ok
Внимание: Если команда kvm-ok не найдена, установи пакет: sudo apt install -y cpu-checker

Установка VirtualBox на Ubuntu

VirtualBox — наш провайдер виртуализации. Установим его официальным способом:

bash
# Добавляем репозиторий Oracle VirtualBox
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -

# Добавляем репозиторий в sources.list
echo "deb [arch=amd64] http://download.virtualbox.org/virtualbox/debian $(lsb_release -cs) contrib" | \
sudo tee /etc/apt/sources.list.d/virtualbox.list

# Обновляем пакеты и устанавливаем VirtualBox
sudo apt update
sudo apt install -y virtualbox-7.0

После установки проверь, что VirtualBox установлен корректно:

bash
virtualbox --help
# или
VBoxManage --version

Установка Vagrant на Ubuntu

Теперь перейдем к основной задаче — установке Vagrant. HashiCorp (разработчик Vagrant) предоставляет официальные DEB пакеты для Ubuntu.

Способ 1: Установка из официального репозитория (рекомендуется)

bash
# Добавляем ключ GPG HashiCorp
wget -O- https://apt.releases.hashicorp.com/gpg | \
sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg

# Добавляем репозиторий
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] \
https://apt.releases.hashicorp.com $(lsb_release -cs) main" | \
sudo tee /etc/apt/sources.list.d/hashicorp.list

# Устанавливаем Vagrant
sudo apt update
sudo apt install -y vagrant

Способ 2: Установка DEB пакета вручную

Если у тебя проблемы с репозиторием, можешь скачать пакет напрямую:

bash
# Скачиваем последнюю версию Vagrant для Ubuntu/Debian
# Замени X.X.X на актуальную версию с официального сайта
wget https://releases.hashicorp.com/vagrant/2.4.0/vagrant_2.4.0-1_amd64.deb

# Устанавливаем пакет
sudo dpkg -i vagrant_2.4.0-1_amd64.deb

# Если будут ошибки зависимостей
sudo apt --fix-broken install

Проверка установки Vagrant

bash
# Проверяем версию
vagrant --version

# Проверяем доступные команды
vagrant --help

Настройка Vagrant после установки

После успешной установки Vagrant на Ubuntu, давай настроим его для оптимальной работы.

Установка плагинов Vagrant

Плагины расширяют функциональность Vagrant. Вот самые полезные:

bash
# Плагин для работы с дисками (увеличение размера)
vagrant plugin install vagrant-disksize

# Плагин для уведомлений (опционально)
vagrant plugin install vagrant-notify

# Плагин для кэширования боксов (ускоряет загрузку)
vagrant plugin install vagrant-cachier

Настройка переменных окружения

Добавь в ~/.bashrc или ~/.zshrc:

bash
# Указываем путь для хранения боксов (по умолчанию ~/.vagrant.d/boxes)
export VAGRANT_HOME="$HOME/.vagrant.d"

# Указываем путь для машин (по умолчанию ~/VirtualBox VMs/)
export VAGRANT_VBOX_VM="$HOME/VirtualBox VMs"

# Применяем изменения
source ~/.bashrc

Первый запуск: Создание тестовой виртуальной машины

Давай проверим, что установка Vagrant на Ubuntu прошла успешно, создав тестовую виртуальную машину.

bash
# Создаем директорию для проекта
mkdir ~/vagrant-test && cd ~/vagrant-test

# Инициализируем Vagrant с Ubuntu 22.04 (jammy64)
vagrant init ubuntu/jammy64

# Запускаем виртуальную машину
vagrant up

# Подключаемся к машине по SSH
vagrant ssh

Если все прошло успешно, ты увидишь приглашение командной строки внутри виртуальной машины Ubuntu. Поздравляю — установка Vagrant на Ubuntu завершена!

Пример Vagrantfile для разработки

Вот базовый пример конфигурационного файла Vagrantfile для веб-разработки:

ruby
Vagrant.configure("2") do |config|
  # Используем Ubuntu 22.04
  config.vm.box = "ubuntu/jammy64"
  
  # Настройка сети (порт 8080 на хосте → 80 на гостевой)
  config.vm.network "forwarded_port", guest: 80, host: 8080
  
  # Синхронизация папок
  config.vm.synced_folder "./app", "/var/www/html"
  
  # Настройка ресурсов виртуальной машины
  config.vm.provider "virtualbox" do |vb|
    vb.memory = "2048"
    vb.cpus = 2
    vb.name = "dev-environment"
  end
  
  # Провижининг (настройка после создания)
  config.vm.provision "shell", inline: <<-SHELL
    apt-get update
    apt-get install -y nginx
    systemctl enable nginx
    systemctl start nginx
  SHELL
end

Сравнение методов установки Vagrant

Метод Преимущества Недостатки Рекомендация
Официальный репозиторий Автоматические обновления, проверенные пакеты Требует добавления репозитория ✅ Для большинства случаев
DEB пакет вручную Не требует интернета после скачивания Ручное обновление Для офлайн-установки
Snap пакет Автообновление, изоляция Могут быть проблемы с плагинами ⚠️ Не рекомендуется

Решение распространенных проблем при установке

Проблема 1: Ошибки с ядром VirtualBox

bash
# Пересобираем модули ядра VirtualBox
sudo /sbin/vboxconfig

# Или переустанавливаем заголовки ядра
sudo apt install --reinstall linux-headers-$(uname -r) virtualbox-dkms

Проблема 2: Конфликты версий

Если у тебя уже установлен старый Vagrant:

bash
# Полностью удаляем старую версию
sudo apt remove --purge vagrant
sudo rm -rf ~/.vagrant.d

# Устанавливаем заново по инструкции выше

Проблема 3: Нет доступа в интернет внутри VM

bash
# В Vagrantfile добавь:
config.vm.provider "virtualbox" do |vb|
  vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
  vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
end

Полезные команды Vagrant для повседневной работы

  • vagrant up — запуск виртуальной машины
  • vagrant halt — остановка машины
  • vagrant suspend — приостановка (быстрый старт)
  • vagrant destroy — полное удаление машины
  • vagrant ssh — подключение по SSH
  • vagrant provision — повторный запуск провижининга
  • vagrant box update — обновление базового образа
  • vagrant status — статус виртуальной машины

Лучшие практики работы с Vagrant

  1. Используй версионирование Vagrantfile — добавляй файл в Git
  2. Создавай разные окружения — dev, stage, test в отдельных директориях
  3. Используй плагин vagrant-vbguest для автоматического обновления гостевых дополнений
  4. Настрой синхронизацию папок с помощью NFS для лучшей производительности на Linux
  5. Документируй свои боксы — создай README с инструкциями по запуску
Производительность: Для Linux-хостов используй NFS для синхронизации папок. Добавь в Vagrantfile: config.vm.synced_folder ".", "/vagrant", type: "nfs"

Альтернативные провайдеры виртуализации

Хотя мы использовали VirtualBox, Vagrant поддерживает и другие провайдеры:

bash
# Установка плагина для VMware
vagrant plugin install vagrant-vmware-desktop

# Установка плагина для Docker
vagrant plugin install vagrant-docker-compose

# Установка плагина для Hyper-V (только Windows)
# vagrant plugin install vagrant-hyperv

Часто задаваемые вопросы (FAQ)

Какая версия Ubuntu лучше подходит для Vagrant?

Для хоста (твоего компьютера) подходит Ubuntu 20.04 LTS или новее. Для гостевых машин (виртуальных) чаще всего используют Ubuntu 22.04 LTS (jammy) — стабильная и хорошо поддерживаемая версия.

Можно ли использовать Vagrant без VirtualBox?

Да, Vagrant поддерживает множество провайдеров: VMware, Hyper-V, Docker, AWS, Google Cloud. Но VirtualBox остается самым популярным выбором из-за бесплатности и кроссплатформенности.

Как освободить место после удаления виртуальных машин?

bash
# Удалить все остановленные машины
vagrant global-status --prune

# Удалить неиспользуемые боксы
vagrant box prune

Почему Vagrant медленно работает на Windows/Mac?

Основная проблема — синхронизация папок. На Windows используй плагин vagrant-winnfsd, на Mac — нативную синхронизацию или NFS. Для Linux-Linux комбинации производительность максимальная.

Как обновить Vagrant до новой версии?

bash
# Если установлен из репозитория
sudo apt update
sudo apt upgrade vagrant

# Обновить все плагины
vagrant plugin update

Заключение

Установка Vagrant на Ubuntu — это первый шаг к созданию воспроизводимых и изолированных сред разработки. Мы рассмотрели все этапы: от подготовки системы до создания первой виртуальной машины. Теперь ты можешь:

  • Создавать идентичные окружения для всей команды
  • Тестировать приложения в изолированной среде
  • Быстро разворачивать сложные инфраструктуры
  • Экономить время на настройке рабочих мест

Помни: Vagrant — это не только про виртуальные машины. Это про согласованность, повторяемость и скорость разработки. Удачи в освоении DevOps-инструментов!

Следующий шаг: Изучи Ansible или Chef для автоматизации настройки виртуальных машин. Это позволит тебе описывать инфраструктуру полностью в коде.
Поделиться:
Сохранить гайд? В закладки браузера