Pull to refresh

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

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

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

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


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

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

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

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

sudo gem update --system

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

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

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

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

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

vagrant box add lucid64 lucid64.box

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

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

mkdir my_virtual_env
cd my_virtual_env
vagrant init

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

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

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

vagrant up

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

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

vagrant ssh

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

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

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

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

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

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

Articles