Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Введение Vagrant: Основы

Vagrant — продукт компании HashiCorp, специализирующейся на инструментах для автоматизации разработки и эксплуатации. Он позволяет создавать изолированную среду для разработки приложений.

Virtualization

Первая задача любого разработчика на новом проекте - развернуть окружение. Как правило, она сводится к следующим шагам:

  1. Клонировать репозиторий с проектом.
  2. Поставить необходимые пакеты для работы (например, библиотеку для xml).
  3. Установить дополнительные программы, такие как база данных или очереди.
  4. Правильно настроить конфигурационные параметры операционной системы и проекта.

Без автоматизации подобный процесс может занимать как часы, так и целые дни, в зависимости от сложности проекта. Причем, для каждого человека в команде. И все это повторяется при смене компьютера или после переустановки операционной системы. Проблема усугубляется тем, что чем больше разработчиков на проекте, тем более разнообразные машины они используют, включая разные операционные системы. В подобном случае, процесс настройки гарантированно будет разным. На все это тратится драгоценное время каждого разработчика в команде.

Но это еще не все. Есть и другие, менее очевидные проблемы:

  • Разные проекты могут требовать разные версии библиотек и языков
  • Установленные программы, часто, запускаются автоматически при старте компьютера и нагружают его, даже если работа над проектом не ведется
  • Любые изменения конфигурации требуют ручных обновлений от каждого программиста в команде
  • У тестировщиков практически нет шансов самостоятельно развернуть подобный проект

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

  • Когда нужно несколько виртуальных серверов с докером, чтобы, например, объединить их в куб-кластер, их можно поднять с помощью Vagrant
  • Когда нужна определенная версия или возможности ядра линукса, или дополнительные патчи/модули к нему
  • Когда нужен низкоуровневый доступ к сети
  • Когда нужна графика
  • Когда нужен доступ к физическим устройствам
  • Когда нужен более высокий уровень изоляции для безопасности
  • Когда нужно более точное квотирование ресурсов
  • Когда нужно деплоить и тестировать unikernel-приложения
  • Когда нужна архитектура процессора, отличная от хост-системы и так далее

Теперь можно попробовать сформулировать требования к идеальному окружению:

  1. Изолированность. Таким образом избегаются возможные конфликты с другими окружениями (например, основной системой) и основная система остается чистой
  2. Повторяемость. Пересоздать рабочую среду можно за считанные минуты набрав буквально одну команду. Любое изменение распространяется сразу для всех
  3. Переносимость. Окружение разворачивается под любой системой одним универсальным способом

Vagrant создан для решения именно этих задач. Во многом его работа опирается на виртуализацию, для которой, по умолчанию, используется продукт VirtualBox.

В отличие от обычной работы с виртуальной машиной, когда внутри нее стоит система с графической оболочкой, Vagrant создает виртуальную машину доступную только в терминальном режиме (через командную строку), при этом сама разработка продолжается на хост-машине, а вот запуск кода на выполнение происходит внутри машины. Другими словами, редактор ставится на вашу основную систему и код лежит также в ней. Vagrant прозрачно прокидывает код внутрь машины и позволяет его запускать.

В этом курсе мы научимся "заворачивать" любой проект в Vagrant и автоматизировать настройку среды для работы.

Подготовка

Использование Vagrant подразумевает некоторую настройку операционной системы и наличие определенных знаний:

  • Базовое знание сетей, понятие порта
  • Нужно знать, что такое виртуализация и как работать с виртуальными машинами
  • Командная строка - единственный способ взаимодействия с Vagrant. Если ваша операционная система Windows, то вам необходимо настроить её

Самостоятельная работа

  1. Установите систему виртуализации, например VirtualBox. Скачать его под вашу операционную систему можно здесь
  2. Затем скачайте установщик Vagrant под вашу операционную систему на странице Download
  3. Откройте терминал и убедитесь что Vagrant работает:

    vagrant -v
    Vagrant 2.2.19
    
  4. Создайте репозиторий на Github vagrant-experiments


Дополнительные материалы

  1. Документация Vagrant
  2. Репозиторий для примеров курса
  3. Статья про Vagrant в блоге

Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»