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

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

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

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

  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
  1. Создайте репозиторий на Github vagrant-experiments

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

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

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

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

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

Ошибки, сложный материал, вопросы >
Нашли опечатку или неточность?

Выделите текст, нажмите ctrl + enter и отправьте его нам. В течение нескольких дней мы исправим ошибку или улучшим формулировку.

Что-то не получается или материал кажется сложным?

Загляните в раздел «Обсуждение»:

  • задайте вопрос. Вы быстрее справитесь с трудностями и прокачаете навык постановки правильных вопросов, что пригодится и в учёбе, и в работе программистом;
  • расскажите о своих впечатлениях. Если курс слишком сложный, подробный отзыв поможет нам сделать его лучше;
  • изучите вопросы других учеников и ответы на них. Это база знаний, которой можно и нужно пользоваться.

Об обучении на Хекслете

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

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

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

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

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

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

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

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

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

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

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

Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»