для чего нужен vagrant

Записки программиста

Начало работы с Vagrant и зачем он вообще нужен

В первом приближении Vagrant — это такой CLI для VirtualBox. То есть, утилита, которая говорит «создать виртуалку», «запустить виртуалку» и так далее. На самом деле, Vagrant представляет собой нечто куда большее. В частности, помимо VirtualBox есть немало других так называемых провайдеров — VMWare, Amazon EC2, LXC и libvirt.

Для каких задач может пригодиться Vagrant?

Как видите, штука полезная. Давайте же научимся ею пользоваться!

VirtualBox качаем отсюда, а Vagrant — отсюда. Устанавливаем:

Чтобы не возиться со всякими там ISO-образами в Vagrant есть такое понятие, как боксы. Бокс — это сохраненный образ системы. Чтобы создать новую виртуалку, вам нужен бокс. Когда вы архивируете состояние вашей ВМ, на выходе также получаете бокс. Скачаем бокс с Ubuntu 14.04:

Теперь создадим новую виртуалку:

/ vagrant / ubuntu-test
cd

/ vagrant / ubuntu-test
vagrant init ubuntu / trusty64

В каталоге появится файл с именем Vagrantfile. Здесь задаются параметры ВМ. Можно изменить ограничения по памяти и CPU, включить или отключить шаринг каталогов с хост-системой, поправить настройки сети, в том числе — настроить проброс портов из гостевой системы в хост-систему, и так далее. Кстати, по умолчанию все виртуалки находятся в одной виртуальной LAN и видят друг друга. Здесь и далее в качестве провайдера мы будем использовать VirtualBox. Он очень гибок в плане настроек. В частности, в Vagrantfile можно передать любые аргументы утилите VBoxMange, что не удивительно, так как под капотом всю виртуализацию Vagrant делает с ее помощью.

Запустим виртуалку и зайдем в нее по ssh:

/.ssh/config для входа в виртуалку:
# vagrant ssh-config

Тут следует отметить, что говоря vagrant up вы должны находится в одном каталоге с Vagrantfile. При этом после запуска ВМ вы сможете обращаться к ней по id уже из любого каталога. А физически все виртуалки лежат вовсе не рядом с Vagrantfile, а в каталоге

/VirtualBox VMs/. Есть подозрения, что интерфейс у Vagrant мог бы быть более однотипным, и от этого более простым и понятным, но уж как сделали.

Попав внутрь ВМ вы обнаружите, что работаете под пользователем vagrant, который может делать sudo без пароля. При этом есть возможность обмениваться файлами с хост-системой:

Файл hello появится в каталоге

/vagrant/ubuntu-test хост-системы. В гостевой системе доступ к каталогу /vagrant/ имеет только пользователь vagrant. Если вдруг такой способ взаимодействия с гостевой системой кажется вам неудобным, ничто не мешает завести обычного пользователя, сказать ssh-copy-id и обмениваться файлами с помощью scp.

Если в хост-системе сказать:

… то можно увидеть все ВМ и их состояние.

Если ВМ удалялась не через Vagrant, она может остаться в global-status. Лечится это так:

Виртуалки можно ставить на паузу:

Заметьте, что можно использовать не полный id вируталки (1f2a1a5), а только его начало (например, 1f). Кроме того, если вы присвоили ВМ имена, как было описано выше, то можно использовать их.

Полная останова и запуск:

Можно создать из виртуалки бокс, сказав в каталоге с Vagrantfile:

Появится файл package.box (у меня он получился около 350 Мб). Упаковывать его не нужно, это уже сжатый файл.

Часто требуется присвоить виртуалке фиксированный IP в LAN. Для этого находим в Vagrantfile строку, похожую на следующую, раскомментируем и правим:

В качестве примера альтернативного провайдера рассмотрим vagrant-lxc. Как вы догадались, он позволяет делать все, что было описано выше, используя LXC вместо VirtualBox. Если в двух словах:

Подробности можно найти на GitHub’е плагина.

Как видите, все довольно просто. Дополнительную информацию вы можете найти по следующим ссылкам:

А пользуетесь ли вы Vagrant и если да, то для каких задач?

Источник

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

для чего нужен vagrant. Смотреть фото для чего нужен vagrant. Смотреть картинку для чего нужен vagrant. Картинка про для чего нужен vagrant. Фото для чего нужен vagrant

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Запуск

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

Подключение

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

Остановка

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

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

Плагины

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

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

Источник

Про Vagrant, его плагины, и другие истории из жизни бродяг

По моему мнению, большинству IT специалистов стоит использовать Vagrant. Кто не знает, что это такое – рекомендую начать с официального сайта. На Хабре так же было несколько обзоров вагранта, например Development Environment при помощи Vagrant и Chef и Создание новой виртуальной машины за одну минуту или «vagrant up!». В этой статье я более детально расскажу о «экосистеме» вагранта.

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

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

Используя различные системы виртуализации, вагрант может стать незаменимым инструментом, который проверяет разные аспекты вашей инфраструктуры с помощью тестов в CI окружении.

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

Если вы все же не любите готовых решений, то есть проекты, позволяющие автоматизировать создание базовых образов. Например, VeeWee (вводная статья о нем на Хабре) и Packer. Последний сделан Митчелом Хашимото, автором вагранта. К сожалению, русскоязычных обзоров его нету, но мы обязательно напишем о нем в одной из ближайших статей.

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

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

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

Источник

Vagrant, Python, Pycharm = (удобная, работа, Windows)

для чего нужен vagrant. Смотреть фото для чего нужен vagrant. Смотреть картинку для чего нужен vagrant. Картинка про для чего нужен vagrant. Фото для чего нужен vagrant

Введение

Django — широко известный и один из наиболее развитых фреймворков для веб-разработки. Django написан на Python и, следовательно, для работы с ним потребуется установленный интерпретатор Python. Это не представляет никаких проблем, если мы работаем в среде Linux. Однако события принимают совсем другой оборот, если приходится заниматься разработкой на Python под Windows.

Для Windows есть готовые сборки Python, среди которых стоит отметить Enthought Python, Anaconda Python, PythonXY.
Есть и более простые пути.
Основной их недостаток по сравнению со «стандартным» Python в Linux — ограниченность набора библиотек, доступных для установки. В частности, в них не Django, и для его установки приходится совершать некие не совсем очевидные действия.

Один из возможных вариантов решения проблемы — установка виртуальной машины с Linux на борту. Работа с виртуальной машиной, несмотря на простоту ее установки и настройки, привносит ряд неудобств.
Так, виртуальная машина может оказаться довольно требовательной к ресурсам компьютера и временами работать медленно, создавая дискомфорт разработчику. Особенно сильно это раздражает, если торможение начинается в самый напряженный момент работы (а именно тогда это чаще всего и происходит!). Кроме того, даже на очень хорошем железе такое IDE, как PyCharm, работает в режиме далеком от того, который принято считать комфортным.

Повысить быстродействие можно за счет установки только необходимых пакетов, отсутствия оконного менеджера и тому подобных проблем. Т. е., необходимо правильно сконфигурировать виртуальную машину. И в этом деле на помощь приходит Vagrant — утилита для создания полностью готовых рабочих окружений на основе виртуальных машин (VirtualBox, VmWare Player/Workstation). Vagrant не только устанавливает виртуальную машину, но и позволяет с легкостью создавать новые, используя текущую конфигурацию пользователя.

В следующем разделе рассматривается установка и настройка рабочего окружения Vagrant для использования его в качестве удаленного Python интерпретатора для проектов PyCharm.

Работа с Vagrant в Windows
Установка Vagrant и загрузка окружения

Установка Vagrant выполняется очень просто. Все, что необходимо, — скачать установщик с сайта и запустить его. Кроме того, для работы Vagrant требуется установить одну из виртуальных машин VirtualBox или VMware.

После того, как Vagrant установлен, мы переходим к созданию рабочего окружения. Основа его построения — «коробка» Vagrant (box). »Коробка» Vagrant представляет собой файл с расширением box. Этот файл есть не что иное, как архив tar, возможно сжатый с помощью gzip. Внутри архива хранятся образ виртуальной машины и файлы, необходимые для ее корректного запуска.

На официальном сайте Vagrant есть значительное число готовых «коробок» с различными версиями Linux и установленным ПО. Их список можно посмотреть на VagrantCloud.
Еще больше готовых окружений доступно на www.vagrantbox.es.

Для наших целей вполне подойдет стандартная версия Ubuntu — hashicorp/precise64 с предустановленными Chef и Puppet (которые нам, к слову сказать, не понадобятся) из официального репозитория. Перед тем как устанавливать окружение, создадим директорию, где будет храниться файл с конфигурацией для него. Назовем ее Vagrant. Переходим в эту директорию и выполняем в консоли:

После этого в директории появится файл Vagrantfile, в котором содержится описание конфигурации данного окружения. Например, строчка config.vm.box = «hashicorp/precise64» определяет имя нашего окружения. Теперь все готово к тому, чтобы приступить к запуску окружения. Выполним

и увидим сообщение о загрузке соответствующей «коробки». Т. к. это — первый запуск данного окружения, перед стартом его надо скачать из репозитория на локальный диск. Следует заметить, что в приведенном выше примере аргумент команды init — имя окружения — совпадает с таковым на сайте Vagrant. Это соответствие необязательно. Так, можно было бы сконфигурировать данное окружение (его версию без Chef и Puppet) и таким образом:

Второй аргумент init, как несложно заметить, представляет собой URL «коробки». Отметим также, что имена окружений, например, использованные выше hashicorp/precise64, precise64, фактически нужны для удобной ориентации среди установленных окружений, а сам Vagrant использует уникальные идентификаторы для запуска требуемого окружения (их значение хранится в файле action_set_name). Файлы рабочих окружений хранятся по умолчанию в директории

» в Windows — директория C:\Users\your_login\.

После того как мы выполнили vagrant up и дождались загрузки окружения, оно готово к использованию, в чем можно убедиться, проверив его статус:

Для завершения работы окружения используется команда

Все установленные окружения Vagrnat можно просмотреть с помощью vagrant box list или непосредственно в VirtualBox (VMware).

для чего нужен vagrant. Смотреть фото для чего нужен vagrant. Смотреть картинку для чего нужен vagrant. Картинка про для чего нужен vagrant. Фото для чего нужен vagrant

Virtualbox с установленными виртуальными машинами Vagrant.

В заключение этого раздела отметим, что окружение Vagrant может быть добавлено с помощью команды vagrant box add. Подробнее о ней и о других консольных командах Vagrant можно прочитать на странице с официальной документацией.

Подключение к окружению Vagrant

Из соображений удобства ключ можно сохранить в папку с файлом Vagrantfile для данного окружения. Теперь указываем PuTTY, какой ключ использовать, и подключаемся через порт 2222 (номер порта отображается при выполнении vagrant up). По умолчанию для подключения используется имя (login) — vagrant.

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

для чего нужен vagrant. Смотреть фото для чего нужен vagrant. Смотреть картинку для чего нужен vagrant. Картинка про для чего нужен vagrant. Фото для чего нужен vagrant

Сохранение ключа в PuTTYgen.

для чего нужен vagrant. Смотреть фото для чего нужен vagrant. Смотреть картинку для чего нужен vagrant. Картинка про для чего нужен vagrant. Фото для чего нужен vagrant

для чего нужен vagrant. Смотреть фото для чего нужен vagrant. Смотреть картинку для чего нужен vagrant. Картинка про для чего нужен vagrant. Фото для чего нужен vagrant

Настройка параметров соединения PuTTY.

Теперь, когда рабочие окружения скачаны и запущены, все готово к установке Python и собственно Django. Хорошая практика — использование виртуальных окружений для работы с Python (и не только с ним). В этом случае риск конфликтов с уже установленными в системе версиями интерпретатора и прочего ПО сводится к минимуму и появляется возможность одновременной работы с разными версиями интерпретатора Python, Django или любого другого пакета.

Для установки виртуального окружения выполняем в консоли Vagrant:

После завершения установки создаем новое виртуальное окружение

Теперь пришло время установить Django:

Можно указать версию пакета, которую мы хотим установить:

Django установлен, но осталась одна небольшая задача: научить PyCharm работать с интерпретатором Python, установленным в окружении Vagrant. Как это сделать, разбирается в следующем разделе.

Настройка PyCharm

Запустим PyCharm и создадим новый Django-проект. По умолчанию он создается в папке

/PycharmProjects/. Пусть это будет проект Test. Далее в домашней директории рабочего окружения Vagrant создадим папку PycharmProjects (совпадение имен случайно и выбрано из соображений удобства).

Переходим в меню настроек проекта: File->Settings->Project Interpeter. Здесь добавляем новый интерпретатор: указываем его адрес (127.0.0.1), номер порта (2222), имя пользователя (vagrant), путь к интерпретатору /home/vagrant/venv/bin/python и, наконец, указываем путь к файлу с ключом для ssh.

Теперь необходимо настроить синхронизацию локальной папки с проектами и аналогичной папки в окружении Vagrant. Открываем для редактирования файл Vagrant и раскомментируем в нем строку с config.vm.synced_folder, исправляя ее на config.vm.synced_folder C:/Users/adolgikh/PycharmProjects, /home/vagrant/PycharmProjects. Теперь локальные файлы будут синхронизироваться с окружением, в котором установлен интерпретатор. Перезапускаем Vagrant

и видим, что наша папка с проектом Test была успешно добавлена в папку с проектами в удаленном рабочем окружении.

Чтобы текущие изменения, сделанные по ходу работы над проектом, сразу отправлялись в удаленную среду, необходимо сделать дополнительные настройки в проекте Pycharm. Заходим в меню Run->Edit Configuration и корректируем Path Mapping так, как это показано на скриншоте.
Упоминания заслуживает возможность запуска ssh-консоли в Pycharm. Она запускается из меню Tools и подключается по ssh к окружению, которое указано в настройках удаленного интерпретатора. Таким образом, нам нет необходимости использовать PuTTY с корректно настроенным проектом в Pycharm.

Источник

Знакомимся с инструментом Vagrant

Содержание статьи

Как насчет того, чтобы поднять работу с VirtualBox на новый уровень — создавать виртуальные машины быстро и целыми пачками, организуя их в сеть? Что, если одним конфигурационным файлом и парой команд создавать простую и воспроизводимую структуру серверов, управляя шарингом папок и перенаправлением портов? Уже интересно?

Введение

Главная страница проекта сообщает, что ему уже выразили доверие такие гиганты мира IT, как Mozilla, Nokia или DISQUS. «Бродяга» (а именно так переводится название проекта) создан в лучших традициях эпохи гитхаба:

Установка

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

Первый — установка соответствующего операционной системе пакета с downloads.vagrantup.com. Там есть нативные инсталлеры под Windows, OS X и распространенные дистрибутивы Linux (Deb/RPM-пакеты, а также общий инсталлер). Второй — установка соответствующего гема:

После этого в системе появится новая команда — vagrant. И мы уже готовы создать нашу первую виртуалку:

Ну вот и все, теперь убедимся в ее работе — проверим ее состояние:

И зайдем по SSH, увидев стандартное приветствие убунты:

Базовые сборки

Базовые сборки (base box) — это специальным способом подготовленные шаблоны виртуальных машин, из которых потом создаются непосредственно виртуальные среды вагранта. Дело в том, что для ускорения процесса создания виртуалки он копирует существующую базовую сборку и уже ее настраивает в соответствии с конфигурационным Vagrant-файлом. В результате пользователь, с одной стороны, может не беспокоиться о некоторых нюансах конфигурации виртуалки (например, объеме памяти или сетевых контроллерах), с другой стороны — все эти нюансы при необходимости могут быть легко изменены. Также в большой степени экономится время на создании новой машины, что позволяет в любой момент «убить» все ненужное, а потом создать по новой. Базовые сборки в систему добавляются командой:

Сами разработчики вагранта предлагают четыре вида базовых сборок — два последних релиза Ubuntu в 32- и 64-битном исполнении (одну из них мы только что уже установили в системе):

Но на этом список далеко не заканчивается. Существует специальный сайт, где каждый желающий может выложить свою базовую сборку. Он располагается по адресу:www.vagrantbox.es. Там любой может выбрать себе что-нибудь по вкусу. В ассортименте: Debian, Windows Server, FreeBSD, CentOS, Gentoo и другие.

Кроме того, ты легко можешь создать собственную стартовую конфигурацию, но об этом чуть позже.

НОВШЕСТВА VIRTUALBOX 4.2

Кстати, не так давно Oracle выпустили новую версию VirtualBox под номером 4.2. Если ты еще не перешел на актуальную версию, то, вероятно, тебе будет интересно узнать о новшествах.

Группы виртуальных машин

В новом менеджере появилась возможность группировать виртуалки по какому-либо принципу (например, по типу операционной системы, по проекту, в котором они используются, или как-либо еще). Группы позволяют организовать весь зоопарк, который появляется у опытных пользователей виртуалбокса, а также выполнять групповые операции — например, можно разом стартануть несколько машин, выбрав соответствующую команду в группе.

Автостарт? Запуск «безмордовый»

Так называемый Headless launch — то есть запуск виртуалки без открытия соответствующего окна с интерфейсом машины — теперь возможен прямо из менеджера. Если раньше, чтобы запустить виртуальную машину, приходилось отправляться в консоль, набирать там что-то типа:

Создание виртуалок в два клика

Это, правда, чисто интерфейсное улучшение (то есть ни о каком программном ускорении создания виртуальной машины речи не идет), но все же. Если на первом диалоге при создании новой виртуалки нажать кнопку «Скрыть описание», то появится другой диалог типа «все в одном», в котором можно будет быстро настроить параметры создаваемой машины.

Улучшения сетевых интерфейсов

Теперь VirtualBox позволяет создавать виртуальные машины с 36 сетевыми картами на борту. Также представлен новый функционал регулирования пропускной способности, чтобы ограничить «прожорливость» виртуалки.

Повышение производительности процессоров

Многие современные процессоры поддерживают технологию виртуализации вложенных страниц для блока управления памятью процессора (у Intel она называется Extended Page Tables, а у AMD — Rapid Virtualization Indexing). С версии 4.2 виртуалбокс теперь ее тоже поддерживает. Поэтому владельцы Core i5 или AMD Bulldozer после обновления должны заметить определенный прирост скорости работы виртуальной машины.

Новые гостевые ОС

Список официально поддерживаемых гостевых операционок теперь дополнился следующими наименованиями:

Так что теперь все современные операционки без проблем должны работать внутри VB.

Хакер #170. Малварь для OS X

Vagrant-файл

Важной частью системы является специальный конфигурационный файл, написанный на Ruby. Он называется Vagrantfile и описывает виртуальные машины, необходимые в проекте. Предполагается, что в команде для разработки используется один и тот же Vagrantfile, который распространяется через систему контроля версий между ее членами. Важно заметить, что Vagrant читает конфигурацию последовательно из четырех мест и каждый последующий этап может изменять параметры предыдущего. Итак, точный порядок загрузки такой:

Полный список доступных настроек для вагрантфайла содержится в документации. Только что созданная виртуальная среда имеет минимальный конфиг вида:

И пока несколько бестолкова, но ничего, дальше мы добавим ей функционала.

Provisioning

Запуск пустой виртуальной машины (пусть даже и особым образом сконфигурированной) вряд ли может быть сильно полезен, поэтому в вагранте есть так называемые наполнители (provisioners) — различные способы настроить виртуальную машину не снаружи, а изнутри. По сути, это возможность писать различные дополнительные сценарии, которые выполняются после создания виртуальной машины. Поскольку вагрант написан рубистами, то в качестве конфигураторов машины выбраны привычные им средства: Chef Solo, Chef Server, Puppet Standalone, Puppet Server и обыкновенный Shell. Средства Chef и Puppet довольно известны и распространены и часто применяются для деплоя самых разных проектов, так что мы не будем заострять на нах внимание и рассмотрим самый простой вариант — shell-скрипт. Создадим в текущей директории файл с именем install_redis.sh и содержанием:

А в Vagrant-файл добавим команды для наполнения:

Теперь переконфигурируем нашу машину командой:

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

Сетевые настройки

Конечно, одна из важнейших настроек виртуальной машины — конфигурация сетевых интерфейсов. За сетевые настройки отвечает параметр config.vm.network. Вагрант предлагает два варианта на выбор: работа в сети, ограниченной хост-машиной, и подключение через сетевой мост.

В первом случае мы явно задаем IP машины, а также можем опционально указать маску сети (по умолчанию используется 255.255.255.0). В таком случае конфиг приобретает вид:

Во втором случае машина получает IP по DHCP и становится полноценным членом сети, в которой расположена и хост-машина. Если на хост-машине присутствует несколько сетевых интерфейсов, то мы можем указать, который именно использовать для моста. Для вывода списка имен сетевых интерфейсов воспользуемся командой:

И, соответственно, конфигурация примет вид:

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

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

для чего нужен vagrant. Смотреть фото для чего нужен vagrant. Смотреть картинку для чего нужен vagrant. Картинка про для чего нужен vagrant. Фото для чего нужен vagrant Также в VB 4.2 значительно улучшился общий интерфейс работы с машинами

Несколько виртуальных машин

Кстати, в одном Vagrant-файле можно объявить сразу несколько виртуальных машин с различными настройками. Как? Я думаю, следующий пример скажет сам за себя:

Более того, запускать и пересоздавать виртуалки можно по отдельности, добавляя имя машины после соответствующей команды:

Общие папки

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

Важно заметить также, что папки, использующие протокол NFS (Network File System), показывают лучшую производительность, нежели общие папки виртуалбокса. С другой стороны, NFS не поддерживается на хостах с Windows. Для того чтобы использовать NFS вместо VirtualBox shared folders, необходимо это явно указать в настройках:

Снэпшоты и песочница

Поскольку Vagrant предоставляет гибкий API для расширения своего функционала, неудивительно, что существует немалое количество плагинов для Vagrant, решающих самые различные задачи. На случай, если у тебя появятся новые идеи, какие новые возможности можно добавить в вагрант, — в документации есть специальный раздел, содержащий все необходимые настройки и примеры (bit.ly/126iIsM).

Sahara

Плагин представляет собой песочницу для виртуальных машин: если что-то поломалось, можно легко и просто откатить до последнего снэпшота. Плагин является руби-гемом (что вполне ожидаемо) и называется sahara. После его установки в вагранте появляется дополнительная команда — vagrant sandbox. Типичный пример использования выглядит так. Включаем режим песочницы:

Производим определенные действия (работаем с файлами, меняем настройки и прочее):

Если результат работы нас удовлетворил — сохраняем изменения:

В противном случае откатываем неугодные правки:

И выходим из режима песочницы:

Создание базовых сборок

Несмотря на то что сообщество уже позаботилось о наиболее распространенных образах операционных систем, тебе вполне может понадобиться иметь свою особенную сборку. Из соображений безопасности (а вдруг хакер Вася добавил свою магию в одну из сборок, лежащих в Сети), необходимости каких-то особенных настроек или просто из интереса — неважно, главное, что такая возможность есть. И здесь нам поможет гем veewee, созданный специально для этих целей. Для начала установим его:

Репозиторий veewee содержит большое количество шаблонов. Выберем интересующий нас — пусть это будет последняя версия Ubuntu Server. Теперь создадим новую базовую сборку на основе этого шаблона:

В результате у нас появится новое «определение» бейс-бокса. В папке definitions/myubuntubox содержатся файлы, описывающие нашу виртуальную машину:

Немного поправим конфигурацию виртуалки:

Теперь запустим сборку командой

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

Если все прошло гладко, можно двигаться дальше. Проэкспортируем созданную виртуальную машину как файл базовой сборки vagrant:

Ну вот, собственно, и все. Теперь, чтобы использовать нашу базовую сборку, вызовем уже знакомые команды. Добавим бокс в список:

И создадим новую виртуальную машину на основе уже созданной:

Вот и все — теперь даже самые рьяные параноики не смогут нас осудить, ведь теперь весь техпроцесс создания виртуальной среды контролируется нами же.

Заключение

Удобная среда разработки позволяет больше сконцентрироваться на решаемой проблеме, а не на вопросах совместимости ПО или различиях операционных систем, и это главная фишка Vagrant. С ним можно избавиться от проблем, когда на машине разработчика все работает, а на продакшене почему-то нет. Разумеется, на данный момент несколько смущает его сильная руби-ориентированность, но будем надеяться, что со временем разработчики решат и эту проблему, расширив, например, список провизоров на Python или Java. И кстати, в настоящее время идет работа по добавлению других систем виртуализации, кроме VirtualBox.

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *