Автоматизируем виртуализацию на Linux. Установка и настройка Vagrant

Июнь20

vagrant_logo

На днях понадобилось развернуть виртуальную среду с большим количеством машин для тестирования. Как это организовать быстро, комфортно и с минимальным количеством затрат при дальнейшей работе? Выбор пал на Vagrant. Это своеобразная надстройка над виртуальными машинами со своей инфраструктурой и плюшками.  Полностью настроенная, она позволяет за пару минут развернуть несколько виртуальных машин для тестирования — использую заранее созданные конфиги ( boxes ). Полностью же автоматизировать процесс создания, настройки и развертывания виртуалок можно решить с помощью связки Knife + Vagrant + Veewee + Packer.

Откровенно говоря, информации на русском языке в интернете по данной теме катастрофически мало. Вся она представлена буквально десятком приличных гайдов. Мне, к сожалению, так и не удалось нормально развернуть Vagrant не по одному из них — хотя тут можно списать часть неудач на не самый популярный выбор конфигурации и способа развертывания. Поэтому пришлось лопатить англоязычные источники — там информации оказалось ощутимо больше. В итоге многочасовых копаний и поисков, оказалось, что развернуть всю систему можно буквально за 10 минут — используя несколько команд. Эхх…знать бы сразу, что все так несложно :) Учитывая немалую проделанную работу, решил, что не стоит пропадать зря времени. В этой статье я опишу гайд по установке и настройке Vagrant, для памяти — чтобы в следующий раз при надобности, можно было шустро развернуть рабочую систему не перекапывая половину интернета! А следующий раз может представиться ой как не скоро…полностью настроенная система не нуждается в переустановке или доработке. Разве что, допишите какие-нибудь свои хитрые модификации, да новый бокс свой сделаете. Ну это уже не проблема.

Итак, сам Vagrant будем разворачивать на Ubuntu 15.04 «Vivid Vervet» Desktop 64-bit (amd64). Скачать ее можно прямо с официального сайта совершенно бесплатно.

Для начала очень желательно обновить всю систему.

apt-get update
apt-get upgrade

Итак, для начала скачиваем и устанавливаем сам Vagrant с официального сайта. Опять же, абсолютно бесплатно — что немаловажно для Русского человека :) Там же кстати, можно почитать полную инструкцию на английском языке по самой программе. Меня она правда не впечатлила — написано довольно скомкано и настроить по ней что-то очень непросто. Разве что посмотреть возможные варианты команд — благо, они подсвечены :)

Дальше мы должны скачать собственно бокс. Тут можно написать отдельно — Vagrant использует boxes — заранее созданные и сконфигурированные образы операционных систем, которые можно взять раскатать на свою виртуалку. Боксы можно скачать с официального сайта, но выбор там довольно жиденький. В интернете есть несколько неплохих источников с готовыми боксами. Мне приглянулся вот этот.

Скачиваем любой понравившийся бокс, я возьму для примера такой: Ubuntu lucid 32.

Дальше,  создаем директорию для Vagrant. Я буду делать это в домашней директории:

cd --
mkdir ~/vagrant

копируем туда наш скачанный бокс

cp ~/Downloads/Ubuntu_lucid_32.box  ~/vagrant

и переходим в эту директорию

cd ~/vagrant

далее добавляем бокс в конфиг

vagrant box add ubuntu_32 Ubuntu_lucid_32.box

синтаксис команды следующий: vagrant box add (название вашей новой виртуалки) (файл бокса с которого делаем виртуалку или путь до файла в формате http:// … .box  или ftp:// … .box)

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

Далее мы создаем базовый файл конфигурации виртуальной машины — Vagrantfile. Делается это командой:

vagrant init (название вашей новой виртуалки)

в данном случае, название я уже задал раньше: ubuntu_32

Дальше мы можем зайти и поправить сам Vagrantfile перед первым запуском. Сейчас мы это рассматривать не будем. Сразу запускаем виртуальную машину:

vagrant up

и собственно, ради чего все и делалось —  заходим в саму виртуалку :)

vagrant ssh

Первый запуск виртуальной среды может быть довольно долгим — около 1-2 минут, все последующие запуски будут уже секунд по 10-15.

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

vagrant up --provider= ( среда виртуализации, например, vmware_fusion).

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

Ниже приведен небольшой не полный пример того, что можно настроить

— название бокса на основе которого будет разворачиваться виртуалка( по умолчанию стоит значение base)   config.vm.box = «ubuntu_32»

— проброс портов (8080 нашей машинки на 80 виртуальной) config.vm.network :forwarded_port, host: 8080, guest: 80

— расшариваем и синхронизируем папки виртуалки и нашей системы  config.vm.synced_folder «/home/feanor184/www/vagrant/src», «/var/www»

На самом деле последняя настройка практически не нужна, т.к. по умолчанию домашний каталог виртуальной машины /vagrant синхронизируется с директорией в которой лежит проект. Очень удобно :)

Команды для управления Vagrant

vagrant ssh # подключиться по SSH под юзером vagrant

vagrant suspend # поставить на паузу

vagrant halt # выключить

vagrant reload # перезагрузить конфиг (без выполнения provision)

vagrant reload —provision

vagrant destroy # удалить виртуалку

vagrant box list # cписок доступных «боксов»

Поделиться в соц. сетях

Метки: ,
Copyright © 2013-2017. All rights reserved.

Опубликованно Июнь 20, 2015 by Feanor184 в категории Linux

Об Авторе

Постигаю Linux, учу Python, пытаюсь программировать)

5 комментарий(ев) к записи “Автоматизируем виртуализацию на Linux. Установка и настройка Vagrant

  1. NoServ

    Огромное спасибо за описание Vagrant’а!

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

    Особенно радует, что вагрант кроссплатформенный.

  2. 0p

    Спасибо добрый админ, давно искал информацию по развертыванию виртуалок. особенно за Vagrant.

    1. Feanor184 Автор поста

      Спасибо) Линуксоидам всегда рады)) Я правда можно сказать, пока новичек на этом поприще))

Оставьте комментарий

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

*

=

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