Настройка vagrant на windows 10

Обновлено: 06.07.2024

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

Что такое Vagrant?

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

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

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

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

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

Установка

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

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

Настройка

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

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

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

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

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

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

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

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

Запуск виртуальной машины

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

`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 путь до бинарников.

Cygwin bin 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.


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

Установка VirtualBox 5 на Windows 10

Для начала качаем VirtualBox с официального сайта последнюю версию (на текущий момент 5.2.18). Для этого после перехода по ссылке на страницу загрузки кликаем по ссылке Windows hosts:



Здесь нажимаем Next.

На следующем этапе выбираем все компоненты для установки (выбраны по умолчанию) и нажимаем Next:


На следующем этапе указываем дополнительные настройки (если нужно) или оставляем все по умолчанию и нажимаем кнопку Next:



Наследующем этапе подтверждаем установку виртуального адаптера (то есть нажимаем Yes):


И на завершающем этапе нажимаем кнопку "Install":


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

Так же в процессе установки VirtualBox 5 на Windows 10 появится диалоговое окно с подтверждением установки дополнительного программного обеспечения:


Здесь мы нажимаем кнопку "Установить".

И после завершения установки появляется диалоговое окно:


На этом процесс установки VirtualBox на Windows 10 завершен.

Установка Vagrant на Windows 10

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



И выбираем файл с расширением .msi для установки на Windows:


После скачивания запускаем файл vagrant_2.1.5_x86_64.msi. В результате появится диалоговое окно с приветствием:


На следующем этапе соглашаемся с правилами пользования (устанавливаем галочку в поле "I acept. ") и нажимаем Next:


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


И в следующем окне нажимаем кнопку "Install":


Ожидаем окончания установки:


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


После завершения установки Vagrant на Windows 10 появится окно с просьбой о перезагрузке компьютера:


Здесь нажимаем "Yes" и ожидаем перезагрузки компьютера. Если необходимо вручную завершить работу других программ (или сохранить изменения в важных документах), то нажимаем кнопку "No" и потом перезагружаем компьютер вручную.

Внесение изменений в переменные среды

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

Изменения в переменные среды мы будем вносить при помощи командной строки, а конкретно в переменную PATH мы будем добавлять путь до каталога, куда установлен Vagrant (в нашем случаем это: C:\HashiCorp\Vagrant\bin).

Вызываем командную строку следующим образом:

1. нажимаем на клавиатуре клавиши Ctrl+R для вызова окна "Выполнить".
2. В появившемся окне набираем команду: cmd
3. Нажимаем кнопку ОК:


В итоге должны получить следующее:


В окне командной строки добавляем следующую команду:

и нажимаем клавишу Enter:



И теперь для проверки того, удалось ли нам прописать путь к Vagrant в переменные среду, в этом же окне командной строки набираем команду:

и нажимаем клавишу Enter:



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

На этом процесс установки и настройки Vagrant и VirtualBox на Windows 10 завершен.

Создание виртуальной машины в Vagrant на Windows 10

Для создания виртуальной машины для начала создадим отдельный каталог, например, VagrantVM:


В командной строке откроем этот каталог. Для этого будем использовать команду cd. В нашем случае каталог располагается по следующему пути:

Значит в командной строке выполняем следующую команду:

В результате получим следующее:



Для примера будем использовать сборку ubuntu/trusty64 . Чтобы ее запустить на виртуальной машине, нужно сначала инициализировать бокс с этой сборкой. Для этого в командной строке выполняем команду:



Теперь запустим проинициализированный бокс:

После запуска данной команды начнется запуск загрузки и настройки виртуальной машины. После завершения этой операции в VirtualBox появится новая виртуальная машина:



Работать с этой виртуальной машиной можно через SSH. Для этого нам потребуется программа PuTTY, которую можно скачать отсюда (процесс установки описывать не будем, он достаточно прост).

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

В результате появится запрос на ввод пароля:


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

В результате после ввода пароля окно получаем следующее:


то есть попадаем в оболочку Ubuntu. Здесь можно непосредственно работать с виртуальной машиной при помощи командной строки.

Чтобы вернуться из этого режима в нормальный режим командной строки Windows, выполняем команду:


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



И нажимаем кнопку Open. В появившемся диалоговом окне нажимаем Да:



В результате получаем следующее:



Здесь необходимо ввести логин и пароль (как мы ранее определились, по умолчанию vagrant/vagrant):



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

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

***Если окно командной строки ранее было закрыто, то необходимо снова его запустить и открыть при помощи команду cd каталог, в котором находится наша виртуальная машина.

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

Вы можете поделиться этой статьей в любой из соцсетей, представленных ниже:

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

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

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

Поскольку Vagrant это всего лишь надстройка над VirtualBox, то начать нужно с установки VirtualBox.

Теперь, когда VirtualBox уже есть в вашей системе, то поищите vagrant в стандартных репозиториях вашей системы — скорее всего, он там уже есть.

Для установки в Ubuntu, Linux Mint, Debian, Kali Linux и их производные выполните команду

Для установки в Arch Linux, BlackArch и их производные выполните команду:

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

Для Vagrant в Windows также имеется графический установщик, скачайте его с официального сайта и выполните установку.

В качестве папки установки Vagrant выбирает не C:\Program Files\, а другую папку, это позволяет программе проще работать с разрешениями и правами доступа:


После установки требуется перезагрузка:


После перезагрузки откройте командную строку Windows. Это можно сделать нажав Win+x, в открывшемся окне выберите Windows PowerShell (администратор). В открывшемся окне для перехода из PowerShell в командную строку введите


В этой консоли выполните команду:

Должна появиться стандартная справка по пользованию программой:


Если возникнет ошибка, либо просто для профилактики, выполните обновление плагинов:

Установка плагина vagrant-vbguest

vagrant-vbguest — это плагин Vagrant, который автоматически устанавливает в гостевые системы VirtualBox Guest Additions — гостевые дополнения VirtualBox.

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

Если в Windows у вас проблемы с установкой этого плагина, то попробуйте следующую команду:

Также в Windows файервол может запросить разрешение для выхода в сеть программой:


Плагин vagrant-vbguest запускается и используется по умолчанию всеми виртуальными машинами. Он запускается автоматически сразу после старта коробки (так в Vagrant называют виртуальные машины). Получается что он работает каждый раз при загрузке коробки, то есть при использовании команд vagrant up или vagrant reload. Он не будет работать при команде vagrant resume (или vagrant up на приостановленной коробке) чтобы не тратить время при возобновлении работы виртуальной машины.

Чтобы отключить этот плагин, в настройках виртуальных машин установите vbguest.auto_update на false.

Как пользоваться Vagrant

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

Например, offensive-security подготовили kali-linux-light,


тогда установка и запуск выполняются командами:

Примеры других популярных систем:


Для разных систем выделите отдельные папки, то есть запускайте приведённые выше команды в разных папках.

Vagrant умеет не только скачивать и запускать коробки, он также умеет запускать внутри них пользовательские скрипты — поэтому некоторые системы могут устанавливаться сложнее, чем показано здесь. Для них может потребоваться скачивание полного архива. Затем нужно будет перейти в папку, содержащую файл Vagrantfile и уже там запустить vagrant up.

Здравствуй, мой дорогой любитель поработать с Composer'ом, создавая свой очередной крутой проект на одном из модных фреймворков. Или, быть может, ты — фронтэнд-мастер, пишущий сложные штуки на JS и CSS, компилируя их из jsx- и less-файлов, устанавливая библиотеки через Bower, а проект собирая в каком-нибудь Grunt, попутно прогоняя код юнит-тестами и, конечно же, заливая потом всё это на github… Если всё это — часть твоей повседневной жизни, то хвала Всевышнему, поздравляю: ты прошел все эти испытания и даже не сломал себе мозг. Отныне, ты — из числа тех счастливых, потративших не одну неделю, разбираясь в том, как корректно настроить всю эту кучу инструментов, а также, ты — один из тех, кто может доминировать, властвовать и унижать блистать своими знаниями в комментариях Хабра к статьям других, менее проворных и смышлёных коллег по цеху…

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

Уже несколько лет я слышу о Vagrant, да и ты, наверное, тоже краем уха слыхал об этом средстве для быстрого разворачивания настроенных виртуальных машин. Но, каждый раз, когда я читал очередную статью о Vagrant'е, меня отталкивала излишняя сложность инструкций к нему. Не люблю я забивать свою голову лишней информацией: как-то проще было всё это время ставить всё необходимое через «sudo apt-get install [program-name]» и вручную добавлять новые конфиги в nginx, беря за основу старые. Но, почитав на днях инструкцию в документации к Laravel, я понял, что всё не так уж и страшно, а желание обучить программированию своего знакомого стало последним фактором, из-за которого я всё-таки полез настраивать на своей машине Vagrant…

Разработчики Laravel создали свой образ виртуальной машины для Vagrant'а, который уже содержит в себе все средства и инструменты, необходимые тебе для счастливой разработки. В итоге, в совокупности с маленькой утилитой Homestead, также заботливо предоставляемой Laravel для работы с их образом, работать с ним реально проще простого. Список основных компонентов, установленных в их образе, можно посмотреть в документации. Среди прочих инструментов, не указанных в нём, числятся такие вещи, как, например, composer и git. В общем, там уже есть всё необходимое для тебя. Нам с тобой остаётся лишь немного разобраться в том, как работает Vagrant и Homestead и спокойно всё это дело использовать в своей повседневной работе.

И не обязательно использовать данный набор только для проектов, основанных на Laravel: скрипт Homestead предоставляет простые средства для ведения разработки сразу нескольких проектов, через простой файл конфигурации позволяя управлять базами данных и nginx-конфигурациями сервера. В итоге, мы получаем практически аналог Denwer'у, но при этом мы имеем дело с полноценным linux-сервером, которым, при необходимости, мы можем легко начать управлять вручную, и установить на него другие компоненты, и таким образом вырасти в более серьёзных и опытных разработчиков.

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

По сути, всё, что надо сделать — это установить на свой компьютер VirtualBox и Vagrant и немного поковыряться с их настройкой. В статье я буду говорить только о Windows-пользователях, так как линуксоиды, я думаю, и сами всё смогут сделать по инструкциям в документациях. Конечно, всё не без проблем. Если ваше имя пользователя в системе Windows написано русскими буквами (как у меня), то приготовьтесь к ошибкам во время выполнения команд. В таком случае я рекомендую создать системную переменную среды VAGRANT_HOME с указанием папки без русских символов (не знаете, как это делается? почитайте об этом здесь, например), а также открыть настройки VirtualBox'а и указать папку хранения виртуальных машин, в которой тоже нет русских символов. Всё, теперь эти инструменты должны будут корректно работать и не выдавать ошибок.

Итак, основу мы для себя создали, пришло время написать немного команд :) Жмём на клавиатуре клавиши Win+R, вбиваем в открывшееся окошко фразу «cmd», жмём Enter и попадаем в командную строку. Кстати, возможно, вам придётся перезагрузить машину после установки Vagrant, чтобы его команда стала доступна в консоли. Итак, для начала попробуем просто набрать слово «vagrant» в консоли и проверить, корректно ли установлен наш инструмент:


У меня всё нормально. Если возникли проблемы, то проверьте вашу переменную PATH, в ней должен быть путь к бинарнику Vagrant'а. И перезагрузите машину, если не сделали этого.

Дальше в официальной документации нам предлагают склонировать с помощью git или, что еще страшнее, установить через composer на свой компьютер библиотеку Homestead. У меня на винде нет ни git'а, ни, уж тем более, composer'а. И вообще: я эту виртуальную машину и собрался поставить себе как раз для того, чтобы избавить себя от ручной мороки с установкой всех этих инструментов… Поэтому, давай всё-таки не будем заниматься извращениями и просто, по старинке, скачаем zip-архив с github-страницы этой библиотеки на свой компьютер и распакуем его в какую-нибудь папочку :)

Распаковали? Теперь, чтобы установить библиотеку на компьютер, необходимо выполнить команду homestead init. Но вот снова беда: эта команда заработает у нас только тогда, когда на нашем компьютере будут установлены Composer и основные библиотеки Laravel. Другой вариант — это выполнить скрипт init.sh, лежащий тут же рядом, но для его выполнения нам всё равно нужен линуксовый интерпретатор. В общем, опять ставить кучу всякой всячины… Как видим, под виндой простого решения нет. Поэтому давай снова сделаем пару вещей вручную: откроем-ка содержимое файла init.sh и изучим его. Там всего 11 строк кода. Как видим, чтобы «установить» библиотеку, нам просто надо скопировать в папку

/.homestead несколько файлов (знак

обозначает домашнюю директорию текущего пользователя, у меня это «C:\Users\Ахмадуллин\»). Если проанализировать то, как работают их скрипты, то мы придём к выводу, что нам оттуда нужны следующие файлы:

    src/stubs/Homestead.yaml — в папку


Воот… Совсем другое дело. Мы уже почти готовы к полноценной работе с нашей виртуальной машиной. Для доступа к нашей машине нам также нужно создать себе SSH-ключи. Тут нам поможет набор инструментов программы Putty, которую мы также впоследствии будем использовать для управления своим сервером. Скачаем программу PuttyGen и сгенерируем с помощью неё свои приватный и публичный ключи, и сохраним их в папку

/.ssh. Для генерации следует нажимать кнопку «Generate», после этого поводить немного мышкой по центру программы для генерации случайного ключа, и после этого можно сохранять свой ключ. Также, при сохранении, программа предложит заполнить «key passphrase» — но на данном этапе нам это не нужно, поэтому сохраняй свой ключ без пароля и не обращай внимание на то, что Putty будет предостерегать от создания подобного ключа. У нас ведь лишь тестовая машина, а не реальный боевой сервер, поэтому всё это не так страшно.

Публичный ключ сохрани под следующим именем: "

/.ssh/id_rsa.pub". При этом, приватный ключ нам необходимо сохранить в двух форматах: стандартном для Putty (кнопка Save private key, название файла —

/.ssh/putty_private.ppk, например), и в формате OpenSSH (пункт «Export OpenSSH key» в меню Conversions, название файла должно быть "

/.ssh/id_rsa"). Первый приватный ключ нам нужен для того, чтобы потом подключаться к серверу через программу Putty, а второй — для настройки и инициализации сервера через скрипты Homestead. В итоге, у нас должна получиться примерно такая картина с файлами ключей:


Теперь лишь осталось указать некоторые настройки нашему серверу перед запуском, если в этом есть необходимость. Открой в любом редакторе файл Homestead.yaml. Это единственный файл настроек, через который мы можем указывать все основные параметры нашей виртуальной машины. Стандартные настройки уже неплохо написаны, и для начала нам тут и менять ничего не придётся, я лишь кратко объясню его содержимое: раздел "folders" указывает связь каталогов виртуальной машины и вашей реальной системы, чтобы ты мог легко редактировать файлы в виртуальной машине через свой любимый редактор в главной системе. Раздел "sites" — это настройки nginx, и опять же, всё очень просто: мы просто задаём связь домена и каталога на сервере. Раздел "databases" перечисляет названия баз данных, которые будут созданы при инициализации виртуальной машины. Вот, собственно, и всё, что вам надо знать о конфигурировании нашей системы.

P.S. Да, и так как в разделе «folders» по умолчанию указана связь папки

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

P.P.S. И еще, имей ввиду, что формат yaml немного отличается своим подходом к хранению данных. Поэтому, если будешь добавлять туда свои параметры, учти, что количество пробелов здесь имеет значение, так как через них задаётся иерархия данных. Поэтому, устанавливай именно такие отступы к новым объектам, какие уже есть в файле. Более подробно можешь почитать о данном формате, например, в Википедии.

Ну и, наконец, мы подошли к самому интересному…

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


Давай уже попробуем запустить нашу виртуальную машину! Открой командную строку папке

/.homestead и выполни в ней магическую команду:



Если ты всё сделал правильно, то у тебя начнётся загрузка VirtualBox-образа от разработчиков Laravel, и картина будет примерно такая:

Если Vagant сообщил тебе о какой-либо проблеме, не отчаивайся: внимательно изучи текст ошибки и попробуй вбить её текст в Google. Скорее всего, есть уже множество людей, которые столкнулись с подобной проблемой и каким-либо образом решили её. Если образ успешно скачался на твой компьютер, и ошибка возникла во время загрузки машины, то попробуй открыть VirtualBox и запустить её вручную, без Vagrant'а, и посмотреть, что из этого выйдет. Vagrant — это, по сути, просто надстройка над VirtualBox, и ты можешь легко запустить собранную им виртуальную машину самостоятельно, если это будет надо.

Если же всё пошло нормально… То, через несколько минут работы Vagrant'а твоя виртуальная машина полностью настроится и установит все необходимые компоненты и параметры. И ты уже сможешь спокойно подключиться к своему полноценному серверу. Для этого можно использовать, например, Putty.

Подключение к серверу

Давай скачаем файл putty.exe и подключимся с помощью него к нашему серверу. Настрой программу следующим образом: укажи адрес сервера, порт и пользователя, а также, в разделе "Connection -> SSH -> Auth" не забудь указать адрес к сгенерированному тобой приватному ключу, после чего сохрани все эти настройки в сессии под каким-нибудь названием, чтобы не вбивать их каждый раз при запуске программы, и смело жмякай кнопку «Open». Если ты был внимательным и всё сделал правильно, перед тобою откроется окно терминала твоего собственного виртуального сервера:


P.S. на некоторых машинах была выявлена следующая проблема: Vagrant по какой-то причине не принимает созданный в Putty файл ключа и генерирует свой собственный, по его мнению, более безопасный. Ключ этот сохраняется по адресу "

\.homestead\.vagrant\machines\default\virtualbox\private_key". Если у тебя не получается подключиться с помощью своего ключа к серверу, значит, тебе необходимо использовать ключ, сгенерированный Вагрантом. Перед тем как использовать его, снова открой программу PuttyGen, импортируй в неё созданный Вагрантом файл (пункт Conversions -> Import key) и сохрани в формате putty (кнопка «save private key»), и после этого используй данный файл для подключения к серверу через putty.

Молодец, боец! Первый рубеж на пути покорения мира профессиональной разработки веб-приложений пройден. Теперь, давай напишем еще парочку команд и установим Laravel, просто для того, чтобы убедиться в том, что у нас на сервере всё корректно работает. Введи по очереди две следующие команды на своём сервере:

И сходи попей чайку. Когда вернёшься, открой ту самую папку

/Code, которую ты создавал в своей домашней директории, и если всё прошло нормально, то тебя там должен ожидать сюрприз :)


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

А теперь открывай в браузере адрес homestead.app. Ну как, что видно? У меня вот такая картина:


Если достаточно прищуриться, то можно разглядеть логотип Laravel :) Ну, можно еще мышкой выделить буквы, так виднее будет. В качестве упражнения, давай немного исправим это. Ты можешь открыть файл "

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

Всё написанное в данной статье — это очень краткое описание всех возможностей Vagrant'а, изучай официальную документацию и другие статьи по данному инструменту, если у тебя возникло желание разобраться в нём более глубоко. И советую также почитать комментарии к данной статье, там тоже иногда разные умные люди пишут полезные вещи. Ну и вот и всё. Кажется, статья закончена. Надеюсь, она принесёт пользу людям. И всего хорошего вам, дорогие разработчики :)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Кроме создания файла, 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 её нет.

Читайте также: