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

Как насчет того, чтобы поднять работу с VirtualBox на новый уровень - создавать виртуальные машины быстро и целыми пачками, организуя их в сеть? Что, если одним конфигурационным файлом и парой команд создавать простую и воспроизводимую структуру серверов, управляя шарингом папок и перенаправлением портов? Уже интересно?
Главная страница проекта сообщает, что ему уже выразили доверие такие гиганты мира IT, как Mozilla, Nokia или D1SQU5. «Бродяга» (а именно так переводится название проекта) создан в лучших традициях эпохи гитхаба:
1. Простой и приятный информативный caйт www.vagrantup.com.
2. Исходный код написан на Ruby и выложен на широкое обозрение: https://github.corn/rnitchellh/vagrant.
3. За два года существования он успел обрасти большим количеством дополнений и плагинов на любой вкус.
УСТАНОВКА
Несмотря на то, что Vagrant - это всего лишь рубишный гем, создатели предлагают сразу несколько способов установки.
Первый - установка соответствующего операционной системе пакета с downloads.vagrantup.com. Там есть нативные инсталлеры под Windows, OS X и распространенные дистрибутивы Linux (Deb/RPM - пакеты, а также общий инсталлер). Второй - установка соответствующего гема:
$ gem install vagrant
После этого в системе появится новая команда - vagrant. И мы уже готовы создать нашу первую виртуалку:
$ vagrant box add precise64 -
http://files.vagrantup.com/precise64.box
$ mkdir my_project
$ cd my_project
$ vagrant init precise64
$ vagrant up
Теперь убедимся, что она работает, - проверим ее состояние:
$ vagrant status Current VM states: default running
И зайдем no SSH, увидев стандартное приветствие убунты: $ vagrant ssh
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0 - 23 - generic x86_64)
Documentation: https://help.ubuntu.com/ Welcome to your Vagrant - built virtual machine. Last login: Mon Dan 28 13:51:24 2013 from 10.0.2.2 vagrant@precise64:~$
БАЗОВЫЕ СБОРКИ
Базовые сборки [base box] - это специальным способом подготовленные шаблоны виртуальных машин, из которых потом создаются непосредственно виртуальные среды вагранта. Дело в том, что для ускорения процесса создания виртуалки он копирует существующую базовую сборку и уже ее настраивает в соответствии с конфигурационным Vagrant-файлом. В результате пользователь, с одной стороны, может не беспокоиться о некоторых нюансах конфигурации виртуалки (например, объеме памяти или сетевых контроллерах), с другой стороны - все эти нюансы при необходимости могут быть легко изменены. Также в большой степени экономится время на создании новой машины, что позволяет в любой момент «убить» все ненужное, а потом создать по новой. Базовые сборки в систему добавляются командой:
$ vagrant box add <имя сборки>curl для загрузки>
Сами разработчики вагранта предлагают четыре вида базовых сборок - два последних релиза Ubuntu в 32 - и 64-битном исполнении (одну из них мы только что уже установили в системе):
•Ubuntu Lucid 32 Bit ltiles.vagrantup.com/lucid32.box)
•Ubuntu Lucid 64 Bit (files.vagrantup.com/lucid64.box)
•Ubuntu Precise 32 Bit (tile5.vagrantup.com/precise32.box)
•Ubuntu Precise 64 Bit lfiles.vagrantup.com/precise64.box)
Но на этом список далеко не заканчивается. Существует специальный сайт, где каждый желающий может выложить свою базовую сборку. Он располагается по адресу: www.vagrantbox.es. Там любой может выбрать себе что-нибудь по вкусу. В ассортименте: Debian, Windows Server, FreeBSD, CentOS, Gentoo и другие.
Кроме того, ты легко можешь создать собственную стартовую конфигурацию, но об этом чуть позже.