Vagrant () — свободное и открытое программное обеспечение для создания и конфигурирования виртуальной среды разработки. Является обёрткой для программного обеспечения виртуализации, например VirtualBox, и средств управления конфигурациями, таких как Chef, Salt и Puppet. Поддерживается компанией HashiCorp.
Начиная с версии 1.1 Vagrant больше не привязан к VirtualBox и работает также и с другими средствами виртуализации, например, VMware Workstation, а также поддерживает облачные среды, например Amazon EC2. Инструмент написан на Ruby; при этом его можно использовать в проектах, создаваемых на других языках программирования, таких как PHP, Python, Java, C# и JavaScript.
Vagrant использует конфигурационный файл для описания создаваемой среды. В нём могут задаваться используемая операционная система, число процессорных ядер, объём оперативной памяти, перенаправление сетевых портов и общие каталоги между хостовой и гостевой системами.
Провайдеры и драйверы
Vagrant передаёт параметры, заданные в конфигурации среды, конкретной системе виртуализации (провайдеру) через драйверы. Драйвер преобразует указания Vagrant в команды, поддерживаемые соответствующим провайдером. Значительная часть таких драйверов разрабатывается сообществом пользователей.
В версии 1.6 реализована встроенная поддержка для использования контейнерной виртуализации на базе LXC с применением инструментария Docker вместо полностью виртуализированной операционной системы, что позволяет уменьшить накладные расходы. Docker может использоваться Vagrant в качестве провайдера. Кроме того, контейнеры Docker могут запускаться внутри гостевой виртуальной машины, управляемой Vagrant. В таком случае одна гостевая операционная система может использоваться для размещения нескольких приложений.
Плагин vagrant-libvirt добавляет поддержку libvirt в Vagrant. Если возможности используемого драйвера недостаточны, Vagrant допускает прямой вызов командной строки VirtualBox или другой системы виртуализации, поддерживающей такую возможность.
Возможности
Vagrant предоставляет следующие возможности:
Поддержка создания и использования коробок ("boxes"), которые представляют собой шаблоны виртуальных машин для быстрого развертывания. Интеграция с системами контроля версий, что позволяет разработчикам работать в согласованной среде независимо от локальных конфигураций. Поддержка мульти-машинных сред (multi-machine environments), что удобно для тестирования распределённых систем. Возможность создания собственных плагинов для расширения функциональности. Инструменты для синхронизации файлов между хостовой и гостевой операционными системами.
Образы виртуальных машин
Для развёртывания сред Vagrant использует готовые образы виртуальных машин, называемые boxes. Образы могут загружаться из публичных репозиториев; после загрузки Vagrant сохраняет их локально, что позволяет ускорить повторное создание машин.
Пользователи могут создавать собственные boxes. Например образ может быть подготовлен путём установки в виртуальную машину операционной системы, обновлений и гостевых дополнений. Затем выключенная машина упаковывается в файл с расширением .box. Такой файл может быть добавлен в локальный репозиторий Vagrant и использован для последующих развёртываний.
Настройка гостевых систем
Vagrant поддерживает автоматическое развёртывание программного обеспечения в гостевой системе (provisioning). Для этого могут использоваться сценарии командной оболочки, а также системы управления конфигурациями Ansible, Chef и Puppet. При работе с гостевыми системами Linux Vagrant может автоматически подключать каталог хостовой системы в качестве общего каталога в гостевой системе.
Применение
Vagrant активно используется в DevOps-практиках, так как позволяет стандартизировать окружение разработки и облегчить процесс переноса приложений между разными этапами разработки и тестирования.
Ограничение доступа в России
С марта 2022 HashiCorp закрыл доступ к Vagrant и прекратил обслуживание для клиентов из РФ и Белоруссии.
Примечания
Ссылки Официальный сайт Официальный сайт виртуальных машин Vagrant Список образов виртуальных машин Vagrant Сататья на Хабре о том как обойти ограничение в использовании Vagrant для жителей РФ
Категория:Свободное программное обеспечение, написанное на Ruby Категория:Свободное кроссплатформенное программное обеспечение Категория:Виртуализация Категория:Программное обеспечение для Linux