Как удалить vagrant ubuntu

Обновлено: 07.07.2024

Здравствуй, мой дорогой любитель поработать с 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'а, изучай официальную документацию и другие статьи по данному инструменту, если у тебя возникло желание разобраться в нём более глубоко. И советую также почитать комментарии к данной статье, там тоже иногда разные умные люди пишут полезные вещи. Ну и вот и всё. Кажется, статья закончена. Надеюсь, она принесёт пользу людям. И всего хорошего вам, дорогие разработчики :)


Разработка web-приложений начинается с настройки окружения, в котором будет запускаться и тестироваться код. Необходима среда разработки, в которой, к примеру установлена операционная система Linux со специфичными настройками, зависимости проекта и необходимые программы (MySQL, Nginx, PHP и т.д.).

От проекта к проекту требования могут меняться. Разработчик может работать над несколькими проектами одновременно и у каждого из них будут разные зависимости. Так же над каждым проектом может работать команда.

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

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

Описав процесс настройки в специальном файле, рабочее окружения легко пересоздать на другом компьютере. Vagrant работает в Windows, Mac и Linux.

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

Как это работает

Vagrant консольная утилита, которая управляет виртуальными машинами. По умолчанию Vagrant работает с системой виртуализации VirtualBox. Такая связка доступна в операционных системах Windows, Mac и Linux.

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

Команда vagrant up на основе Vagrantfile создает и запускает виртуальную машину. Во время ее работы папка проекта синхронизируется между основной операционной системой и операционной системой виртуальной машины.

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

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

Установка

Сначала скачайте и установите VirtualBox для своей операционной системы. Затем скачайте и установите Vagrant.

Откройте терминал если вы используете Linux или Mac. В Windows установите и запустите эмулятор Git BASH. Для проверки успешной установки введите команду:

Если видите что-то вроде этого, установка прошла успешно:

Использование

Для демонстрации создадим папку проекта и перейдем в нее:

Наше web-приложение будет состоять из одного файла, которое будет выводить информацию о текущей конфигурации PHP. Создайте в папке проекта файл index.php со следующим содержимым:

Создание Vagrantfile

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

Команда vagrant init создает файл Vagrantfile в текущей директории. В нем на языке Ruby описывается конфигурация виртуальной машины. Синтаксис простой и понятный даже если вы никогда не использовали Ruby. Содержимое созданного файла Vagrantfile:

При создании Vagrantfile мы указали название бокса bento/ubuntu-18.04 . Бокс это образ операционной системы, который так же может содержать установленные программы (LAMP, Python и т.д).

Разработчики Vagrant рекомендуют использовать образы Bento, которые хранятся в специальном каталоге вместе с остальными образами.

Перед созданием виртуальной машины добавим еще несколько настроек в Vagrantfile:

Для удобства настройка системы вынесена в отдельный файл provision.sh . Во время установки Vagrant запустит его внутри созданной виртуальной машины. Содержимое файла provision.sh :

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

Изолированное окружение готово! Откройте браузер и введите:


Локальный домен

Привязывать локальный домен не обязательно, но иногда это удобно. Ранее мы настроили Nginx на работу с доменом newapp.loc и настроили статический ip-адрес. Добавим информацию о перенаправлении в файл hosts . Я использую операционную систему Ubuntu, у меня процесс выглядит так:

Откройте браузер и введите:

Часто используемые команды

Запуск и перезагрузка

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

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

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

Подключение

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

Остановка

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

Удаление

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

Проверка

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

Доступные команды

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

Коротко о главном

Подводя итоги пройдемся по основным моментам рабочего процесса. В корне проекта вместе с исходным кодом лежит файл Vagrantfile. Для разворачивания рабочего окружения достаточно выполнить одну команду vagrant up . Если Vagrantfile изменился, выполните команды vagrant destroy и vagrant up , виртуальная машина будет пересоздана с новыми настройками. Используя систему контроля версий члены команды также легко пересоздадут окружение на своих компьютерах.

Каждый день, работая над проектом, запускаем сначала виртуальную машину командой vagrant up . Исходный код проекта автоматически синхронизируется с виртуальной машиной. Порты проброшены. Работаем над проектом в привычном редакторе кода и браузере. Если по каким-то причинам необходимо попасть в виртуальную машину, выполняем команду vagrant ssh . Закончив работу останавливаем виртуальную машину командой vagrant halt .

P.S. Используйте пример файла Vagrantfile из этой статьи. Измените настройки и скрипт provision.sh под свои задачи.

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

Евгений Прокопьев
Привет! Меня зовут Евгений Прокопьев. Я разрабатываю сложные web-приложения для бизнеса. В своей работе использую: PHP, Python, JavaScript, SQL, HTML, CSS и много сопутствующих технологий.

Рассылка от программиста

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

Рассказываю о программировании и как с помощью него сделать жизнь чуточку легче

За последнее время обилие инструментов для разработчиков неуклонно растёт: 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.

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