Гид по технологиям

Установка и использование Vagrant на Fedora 34

• 6 min read • Виртуализация • Обновлено 22 Nov 2025
Vagrant на Fedora 34: установка и использование
Vagrant на Fedora 34: установка и использование

Кратко

Vagrant помогает быстро развернуть повторяемые виртуальные среды разработки на Fedora 34. В этой инструкции — установка через репозиторий HashiCorp, базовые команды, пример Vagrantfile и практические советы по безопасности и альтернативам.

Важно: команды в статье выполняются в терминале; требуется доступ к sudo и включённая аппаратная виртуализация.

Введение

Логотип Vagrant и пример виртуальной машины

Vagrant — инструмент для создания и управления виртуальными машинами в среде разработки. Он упрощает настройку окружения, сокращает время подготовки и повышает продуктивность команды. На официальном сайте доступны готовые образы (vagrant boxes) для Ubuntu, CentOS и других систем.

Vagrant работает поверх популярных провайдеров виртуализации (VirtualBox, VMware, libvirt и др.) и интегрируется с проконсёрвированными инструментами provision’инга (скрипты шелла, Ansible, Chef, Puppet). Provisioning позволяет автоматически устанавливать и конфигурировать ПО внутри виртуальной машины.

Что рассмотрим в этом руководстве

  • Подготовка системы и требования
  • Установка Vagrant на Fedora 34 через репозиторий HashiCorp
  • Базовые команды: box add, init, up, ssh и пр.
  • Пример Vagrantfile и пояснения к нему
  • Практические советы: безопасность, когда Vagrant не подходит, альтернативы
  • Контрольный список для ролей и критерии приёмки

Требования

  1. Аппаратная виртуализация (VT-x/AMD-V) должна быть включена в BIOS/UEFI.
  2. Доступ к sudo-привилегиям.
  3. Рабочее интернет-соединение.

Подготовка: провайдер виртуализации

Vagrant сам по себе не виртуализатор — он использует провайдера. По умолчанию чаще всего применяют VirtualBox. На Fedora вы можете установить VirtualBox из репозиториев дистрибутива или с сайта Oracle; убедитесь, что установлены пакеты kernel-devel/headers, соответствующие вашей версии ядра, чтобы модули VirtualBox могли быть собраны и загружены.

Совет: если вы используете менеджер пакетов и ядро обновилось, перезагрузите систему и убедитесь, что модули VirtualBox загружены.

Установка Vagrant на Fedora 34

  1. Установите вспомогательный пакет для управления репозиториями:
sudo dnf install -y dnf-plugins-core

Вывод установки dnf-plugins-core в терминале

  1. Добавьте официальный репозиторий HashiCorp:
sudo dnf config-manager --add-repo https://rpm.releases.hashicorp.com/fedora/hashicorp.repo
  1. Установите Vagrant через dnf:
sudo dnf -y install vagrant

Вывод установки Vagrant через dnf в терминале

  1. Проверьте установку и версию:
vagrant -v

Примечание: официальный репозиторий HashiCorp предпочтителен, потому что версии в репозиториях дистрибутива могут быть устаревшими или иметь отсутствующие зависимости.

Быстрая работа с Vagrant: шаги и команды

Vagrant хранит образы (boxes) в локальном кэше после первого скачивания. Это позволяет быстро клонировать базовую виртуальную машину без повторного скачивания образа.

Шаг 1. Добавление образа (box). Пример для Ubuntu Trusty:

vagrant box add ubuntu/trusty64

Процесс добавления box ubuntu/trusty64 в Vagrant

Шаг 2. Инициализация Vagrantfile в текущем каталоге:

vagrant init ubuntu/trusty64

Инициализация Vagrantfile в текущем каталоге

Команда создаёт файл Vagrantfile, который управляет настройками виртуальной машины.

Шаг 3. Запуск виртуальной машины:

vagrant up

Запуск виртуальной машины Vagrant (vagrant up)

Шаг 4. Подключение по SSH:

vagrant ssh

Если вы создаёте новую машину из уже добавленного box, повторное скачивание образа не потребуется — Vagrant возьмёт его из локального кэша.

Пример Vagrantfile и пояснения

Ниже — пример Vagrantfile, создающий одну виртуальную машину mgmt на базе ubuntu/trusty64 с приватной сетью и 256 MB памяти.

Vagrant.configure("2") do |config|
  # create mgmt node
  config.vm.define :mgmt do |mgmt_config|
    mgmt_config.vm.box = "ubuntu/trusty64"
    mgmt_config.vm.hostname = "mgmt"
    mgmt_config.vm.network :private_network, ip: "10.0.15.10"
    mgmt_config.vm.provider "virtualbox" do |vb|
      vb.memory = "256"
    end
  end
end

Ключевые поля:

  • vm.box — имя образа (box), который используется как шаблон.
  • vm.hostname — имя хоста внутри гостевой ОС.
  • vm.network :private_network — приватная сеть между хостом и гостем с указанным IP.
  • vm.provider — конфигурация, специфичная для провайдера (здесь VirtualBox), например объём памяти.

Таблица часто используемых команд

CommandUsage
vagrant box add ‘Box Name’To add a new virtual machine box
vagrant init ‘ORG/BUILD’To initialize virtual machine box
vagrant upTo start up a virtual machine box
vagrant reloadTo restart virtual machine box
vagrant haltTo shut down virtual machine box
vagrant sshTo SSH into the virtual machine box

Дополнительно полезные команды:

  • vagrant status — показать статус машины (running, poweroff и т.п.).
  • vagrant provision — запустить provisioning для уже поднятой VM.
  • vagrant destroy — удалить виртуальную машину и освободить ресурсы.
  • vagrant box list — показать локально установленные boxes.

Когда Vagrant не подходит или где возникают ограничения

  • Масштабируемые production-кластеры: Vagrant рассчитан на локальные среды разработки, а не на production-окружения с сотнями инстансов.
  • Низкое потребление ресурсов и интеграция с контейнерами: если нужно минимальное образное окружение и быстрая перезагрузка, контейнеры (Docker/Podman) могут быть предпочтительнее.
  • CI-пайплайны с ограничениями виртуализации: в средах, где запрещён nested virtualization или нет поддержки VirtualBox/VMware, Vagrant окажется непригоден.

Альтернативные подходы

  • Docker/Podman: лёгкие контейнеры, быстро стартуют и хорошо подходят для микросервисов.
  • libvirt + Vagrant (плагин): альтернатива VirtualBox на Linux для интеграции с KVM/QEMU.
  • Vagrant Cloud + облачные провайдеры: можно использовать провайдеры для создания экземпляров в облаке, но это уже выходит за рамки локальной разработки.

Безопасность и рекомендации по харднингу

  • Не храните учётные данные в Vagrantfile. Используйте переменные окружения или секрет-менеджеры.
  • Ограничьте проброс портов и доступ к приватным сетям только доверенным хостам.
  • Обновляйте base box: периодически меняйте образ на свежую и поддерживаемую версию.
  • Используйте provisioning с idempotent-скриптами (Ansible, Chef), чтобы легко воспроизводить и исправлять конфигурацию.

Контроль качества: тесты и критерии приёмки

Критерии приёмки для локальной среды, созданной через Vagrant:

  1. VM успешно запускается командой vagrant up без ошибок.
  2. Сервис(ы) внутри машины доступны с хоста (проверка через curl/ssh).
  3. Provisioning выполняется повторяемо (vagrant provision даёт тот же результат при повторном запуске).
  4. После vagrant destroy все временные ресурсы освобождены.

Тестовые сценарии (коротко):

  • Проверка статуса: vagrant status => running
  • Проверка соединения: vagrant ssh && hostname => mgmt
  • Проверка сетевого доступа: curl http://10.0.15.10:порт (если настроен порт)

Ролевые чек-листы

Developer:

  • Добавил Vagrantfile в корень проекта.
  • Проверил vagrant up и vagrant ssh.
  • Не зафиксировал в репозитории секреты.

DevOps/Build:

  • Обновил base box и проверил совместимость провайдера.
  • Настроил provisioning через Ansible/Chef.
  • Описал в README команды для коллег.

QA:

  • Выполнил проверку сценариев развёртывания.
  • Проверил idempotency provisioning.
  • Протестировал восстановление среды (vagrant destroy + vagrant up).

Mini-методология для командного использования Vagrant

  1. Храните Vagrantfile в репозитории проекта рядом с инструкциями.
  2. Используйте провиженинг через скрипты/Ansible для воспроизводимости.
  3. При обновлении образа создавайте Pull Request с тестами и инструкциями обновления.
  4. Автоматизируйте проверки: CI может запускать vagrant up в специально выделенных средах или докера-контейнерах с поддержкой виртуализации.

Словарь (одна строка)

  • box — готовый образ виртуальной машины для Vagrant.
  • Vagrantfile — конфигурационный файл проекта Vagrant в формате Ruby.
  • provision — автоматическая настройка ПО внутри виртуальной машины.
  • provider — движок виртуализации (VirtualBox, VMware, libvirt).

Совместимость и миграционные заметки

  • Boxes различаются по провайдеру: образ для VirtualBox не всегда совместим с libvirt/KVM без конвертации.
  • При смене провайдера проверьте секцию vm.provider в Vagrantfile и параметры типа памяти, сетей и пр.
  • Если вы работаете в команде, документируйте рекомендуемый провайдер и его версию.

Краткое резюме

Vagrant — удобный инструмент для локальной виртуализации и воспроизводимых сред разработки. На Fedora 34 установка через репозиторий HashiCorp простая: добавьте репозиторий, установите пакет и используйте базовые команды (box add, init, up, ssh). Для устойчивости используйте idempotent-проvisioning и обезопасьте Vagrantfile от хранения чувствительных данных.

Полезные ссылки и заметки

  • Официальная документация Vagrant: https://www.vagrantup.com
  • Если провайдер VirtualBox не подходит, рассмотрите libvirt/KVM с соответствующим плагином.

Вывод

Vagrant остаётся мощным и гибким инструментом для локальной разработки. Он ускоряет создание окружений, делает их повторяемыми и облегчает совместную работу разработчиков и девопсов.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро