Vagrant mac os как использовать

Что такое Vagrant: установка, запуск, использование

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

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

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

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

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

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

И последнее: нередко требуется возможность развернуть проект и для не программистов, например верстальщиков или тестировщиков. Наличие даже хорошо описанного процесса установки мало им поможет.

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

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

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

Подготовка к работе

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

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

Как установить Vagrant

Первым делом необходимо поставить систему виртуализации, например VirtualBox. Скачать его под вашу операционную систему можно здесь.

Затем скачайте установщик Vagrant под вашу операционную систему на странице Download.

Откройте терминал и убедитесь что Vagrant работает:

Инициализация

Дизайн Vagrant предполагает, что мы создаем отдельную конфигурацию на каждый проект (а соответственно и виртуальную машину), а не одну на все. Инициализация выполняется в папке соответствующего проекта командой vagrant init ubuntu/xenial64 . В результате выполнения этой команды Vagrant создаст файл Vagrantfile. Внутри файла описана конфигурация виртуальной машины на языке Ruby. Не страшно, если вы не знакомы с ним, содержимое файла интуитивно понятно, а документация Vagrant достаточно подробна.

Читайте также:  Windows push notifications user service

Кроме создания файла, Vagrant скачает на вашу машину образ (image) операционной системы, хранящийся под именем ubuntu/xenial64 . В данном случае речь идет про Ubuntu 16.04. Vagrant поддерживает каталог образов, созданных специально под работу с ним. При необходимости можно выбрать другой, посмотрев его имя в каталоге. Если открыть файл Vagrantfile, то можно увидеть что имя образа прописано внутри конфигурации:

Рабочий процесс

Запуск

Старт выполняется командой vagrant up . Она создает виртуальную машину и запускает ее. Если машина уже была создана (предыдущими запусками), то произойдет только старт.

В этот момент уже можно начинать работать с кодом, лежащим в той же папке, что и Vagrantfile. Все изменения автоматически оказываются внутри запущенной виртуальной машины.

Подключение

Для входа внутрь используется команда vagrant ssh . После выполнения терминал подключается к машине в домашнюю директорию пользователя по умолчанию. Традиционно в Vagrant это пользователь с именем vagrant . Теперь необходимо выполнить переход в папку /vagrant . Именно в ней окажется код проекта.

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

Изменения применяются после перезагрузки машины. Для этого достаточно выполнить команду vagrant reload .

Остановка

В конце работы не забудьте выполнить vagrant halt , иначе машина останется запущенной и будет потреблять ресурсы. Если вы решили, что пора полностью все удалить и поставить заново, воспользуйтесь командой vagrant destroy .

Конфигурация системы

Установка необходимых программ внутрь Vagrant традиционным способом — не самый лучший способ добиться повторяемости. По сути такой подход ничем не отличается от настройки проекта на основной системе. Для решения задачи настройки используются средства configuration management, подобные Ansible. Vagrant хорошо интегрируется с ними. Подробнее об этом можно прочитать в официальной документации, а в одном из репозиториев хекслета есть пример такой интеграции.

Плагины

Vagrant может расширяться плагинами. Полный список можно найти на wiki.

Самый важный из этих плагинов — vagrant-vbguest.

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

Источник

Введение в Vagrant

За последнее время обилие инструментов для разработчиков неуклонно растёт: Ansible, Otto, Vagrant, Nomad, Consul, Puppet, Chef. Что это всё? Дабы немного прояснить ситуацию, сегодня я бы хотел рассказать о таком замечательном инструменте как Vagrant, который сам использую практически каждый день.

Что такое Vagrant?

Vagrant это инструмент, позволяющий унифицировать среду разработки и среду в которой этот код будет разворачиваться, используя технологию виртуализации. Проще говоря, если вы как и я любитель делать проекты в среде Windows, но в будущем разворачивать их на *nix машинах, то Vagrant вам в помощь 🙂 Очень часто возникают проблемы на фоне того, что среда разработки значительно отличается от среды, где будет крутиться конечное приложение. Например, в Windows название папки с Заглавной буквы и со строчной это одно и то же, хотя в unix системах это две разные папки.

Читайте также:  Zyxel nwd6605 драйвер windows 10

С высоты птичьего полёта, Vagrant ничто иное как CLI (интерфейс командной строки) для VirtualBox с блекджеком и Vagrantfile.

В качестве демонстрационного примера мы создадим изолированную операционную систему на базе Ubuntu 14.04.3 LTS с виртуальным окружением Python + работающим Django приложением внутри.

Терминология

  • Виртуальная ОС — изолированная операционная система, работающая внутри программы-эмулятора
  • Программа-эмулятор — программа, использующая аппаратные средства виртуализации компьютерного процессора (прим. VirtualBox, VMWare, Parallels Desktop и т.д.) для создания изолированных виртуальных операционных систем внутри 1 физической машины
  • Vagrant — программа-обёртка вокруг программы-эмулятора «с плюшками»
  • Vagrantfile — файл, описывающий характеристики и поведение будущей виртуальной операционной системы на языке программирования Ruby

Установка

Весь процесс установки и настройки будет происходить в Windows среде. Для того чтобы установить Vagrant, необходимо выполнить следующие шаги:

  • Скачать последнюю версию Vagrant для Windows с официального сайта и установить.
  • Скачать VirtualBox для Windows с официального сайта и установить.

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

Настройка

После установки Vagrant и VirtualBox желательно перезагрузить компьютер. Если всё прошло без косяков, то можно приступить к запуску первой виртуальной машины.

Для этого необходимо ввести следующие команды:

Тем самым мы создали Vagrantfile, в котором заданы настройки по-умолчанию, а именно:

  • В качестве дистрибутива используется Ubuntu 14.04
  • Порт 22 гостевой (виртуальной) машины пробрасывается на 2222 порт хост машины
  • Текущая директория ./vagrant_demo пробрасывается на директорию /vagrant виртуальной машины
  • Гостевой системе выделяется 512 МБ ОЗУ и 40 ГБ жесткого диска

Содержимое Vagrantfile ничто иное как код на языке Ruby, задающий определённые характеристики и поведение.

ubuntu/trusty64 — это кодовое название vagrant box, т.е. готового образа системы. Все образы так называемых vagrant boxes можно найти здесь.

Для того чтобы запустить виртуальную машину необходимо выполнить:

Ниже представлен скриншот процесса загрузки бокса и его последующей установки

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

Но, в стандартной Windows отсутствует утилита ssh, поэтому можно получить вот такое сообщение об ошибке:

`ssh` executable not found in any directories in the %PATH% variable. Is an
SSH client installed? Try installing Cygwin, MinGW or Git, all of which
contain an SSH client. Or use your favorite SSH client with the following
authentication information shown below:

Но не стоит расстраиваться, достаточно установить пакет утилит Cygwin и прописать в переменную PATH путь до бинарников.

После успешного выполнения команды появится окно с шеллом:

Поздравляю! Первый этап выполнен. Для отключения виртуалки необходимо выполнить команду из хост-машины:

Список основных команд:

  • vagrant halt — останавливает виртуальную машину
  • vagrant destroy — удаляет виртуальную машину
  • vagrant suspend — «замораживает» виртуальную машину
  • vagrant global-status — выводит список всех ранее созданных виртуальных машин в хост-системе
  • vagrant ssh — подключается к виртуальной машине по SSH

Демо пример с Vagrant, поднимающим отдельную виртуальную машину с виртуальным окружением Python на борту, а также Django приложением, можно найти на моём гитхаб репозитории. Достаточно склонировать реп, перейти в папку и вызвать команду vagrant up. Vagrant установит Ubuntu 14.04.3 LTS и все необходимые пакеты, по завершению установки достаточно будет зайти на виртуальную машину и вызвать runserver.

Django приложение можно увидеть на 18000 порту хост-машины.

Полезные ссылки:

  • Vagrant boxes — список готовых образов виртуальных ОС
  • Vagrant docs — официальная документация Vagrant
  • 12 Factor app: Dev/prod parity — свод правил по разработке веб-приложений
  • Используем KVM для создания виртуальных машин в Linux
  • Обзор подсистемы Linux в Windows 10

💌 Присоединяйтесь к рассылке

Понравился контент? Пожалуйста, подпишись на рассылку.

Читайте также:  Как изменить клавиши смены раскладки windows 10

Источник

Создание новой виртуальной машины за одну минуту или «vagrant up!»


Те, кто раньше сталкивался с созданием виртуальных машин, представляют себе процесс и могут оценить его по времени. Нужно создать саму виртуальную машину, указать для неё необходимые параметры (размер и тип диска, количество оперативной памяти), после этого подключить установочный диск с операционной системой (будь то настоящий оптический привод или образ ISO), дождаться загрузки, запустить установку, дождаться её завершения, отключить установочный диск и перезагрузиться. На всё это может уйти около 20 минут — в каких-то случаях меньше, в каких-то больше, но всё равно это много времени. А если виртуальная машина по каким-то причинам будет удалена, то всё это придётся делать заново.

Vagrant — способ значительно упростить и убыстрить создание новых виртуальных машин. Вместо установочного диска используется специальный box-файл, который автоматически разворачивается в новое виртуальное окружение. После этого с сетевого интерфейса виртуальной машины могут быть перенаправлены порты, может быть выделен IP-адрес, может быть установлено и настроено необходимое ПО. Всё это указывается настройках Vagrant, которые подробно описаны в документации.

Vagrant работает в Linux, Mac OS X, Solaris и Windows.

Для установки Vagrant понадобится менеджер пакетов RubyGems.

Установить RubyGems можно так.

wget -c http://production.cf.rubygems.org/rubygems/rubygems-1.5.0.tgz
tar xvzf rubygems-1.5.0.tgz
cd rubygems-1.5.0
sudo ruby setup.rb
sudo ln -s /usr/bin/gem1.8 /usr/bin/gem

Обновим RubyGems. Стоит сделать как после свежей установки, так и в случае, если он уже был установлен.

sudo gem update —system

Теперь установим Vagrant. Тут следует предупредить об особенностях разных версий. Дело в том, что ветка 0.6 поддерживает только VirtualBox 3.2, а новая ветка 0.7 поддерживает только VirtualBox 4.0, без обратной совместимости.

Итак, если у вас VirtualBox 3.2:
gem install —version ‘= 0.6.9’ vagrant

А если новый VirtualBox, то просто ставьте последнюю версию:
gem install vagrant

Теперь нужно скачать box-файл. Загрузим Ubuntu 10.04 Lucid Lynx — 32 бита, 64 бита.

И добавим этот box-файл.

vagrant box add lucid64 lucid64.box

В принципе, эта команда может принимать вместо пути до файла ссылку на него, но я думаю, что надёжнее сохранить box-файл у себя.

Теперь создадим новую директорию для виртуального окружения Vagrant и создадим там файл настроек Vagrantfile.

mkdir my_virtual_env
cd my_virtual_env
vagrant init

Отредактируем Vagrantfile, заменив
config.vm.box = «base»
на
config.vm.box = «lucid64»

Кстати, если планируется использовать только один box-файл, то при его добавлении можно указать в качестве названия просто base (vagrant box add base lucid64.box). В этом случае такая правка Vagrantfile вообще не требуется.

Теперь запустим виртуальную машину.

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

Теперь мы можем подключиться к виртуальной машине.

Если нужно выполнять команды от имени суперпользователя, достаточно sudo su (ввод пароля не требуется).

Состояние виртуальных машин можно посмотреть с помощью команды vagrant status.

Виртуальную машину можно поместить в ждущий режим. В этом случае возобновление работы происходит очень быстро. Для этого используется команда vagrant suspend (возобновление работы — vagrant up).

Выключить виртуальную машину можно с помощью vagrant halt. А если виртуальная машина больше не требуется, то удалить её (вместе с диском) можно командой vagrant destroy.

Этого достаточно, чтобы создавать новые виртуальные машины и пользоваться ими. Конечно, есть ещё много возможностей, включая создание своих собственных box-файлов, а также автоматическую установку и настройку программного обеспечения — и об этом можно почитать в документации проекта.

Здорово, что многие вещи можно делать быстрее и проще, чем раньше. И отлично, что можно делать их именно тем способом, который удобен и нравится больше всего.

Источник

Оцените статью