Пользователь
0,0
рейтинг
8 февраля 2011 в 13:32

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

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-файлов, а также автоматическую установку и настройку программного обеспечения — и об этом можно почитать в документации проекта.

Здорово, что многие вещи можно делать быстрее и проще, чем раньше. И отлично, что можно делать их именно тем способом, который удобен и нравится больше всего.
Арсений @MaGIc2laNTern
карма
232,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Администрирование

Комментарии (13)

  • –2
    Хотелось бы увидеть подобное для систем под продакшн, а то VirtualBox игрушка, потестить что-либо разве что.
    • 0
      Под какой именно продакшен? Xen?
      • 0
        Xen, KVM, openvz
        • 0
          Так на продакшен логично не голую систему деплоить, а пре-настроенную (хотя бы с клиентом chef/bcfg/younameit), т.е. в любом случае скриптовать. А развернуть тот же debian через debootstrap — пять минут скриптописания, благо можно прямо в lvm-раздел писать всё.
          • 0
            Речь не про то что можно, речь про то что предлагается, и что хотелось бы.
            По-моему я ясно выразил свою мысль еще в начале ветки.
            Любое начинание приветствуется, это бесспорно — просто, имеющуюся энергию, да у нужное бы русло — вот я о чем.
  • +4
    Ник автора больше похож на пароль чем на ник.
    • –2
      Интересно, на что тогда похож его пароль?
      • +1
        На ник, может быть?
  • +2
    С первых строк подумалось, что статья рассказывать про написание виртуальных машин с нуля или около того. А тут… Кстати забавное название для утилиты.
    • 0
      В принципе, верно. Бродяга (vagrant) — либо образ виртуальной машины, то и дело путешествующий по разным компьютерам, то ли человек, который всё время работает с разных компьютеров, и которому нужно быстрое развёртывание виртуальной машины со всем необходимым для работы.
  • 0
    кто-то поднимал на win 7 x64?
    В блоге написано что поднимится только на IronRuby, но к сожалению -не поднялось, ошибка на
    vagrant init
    • 0
      Попробуйте прогуглить текст ошибки, или напишите сюда. Хотя, вынужден признать, Vagrant пока не очень-то популярен, и многие ошибки не гуглятся (а только устраняются собственноручным поиском проблемы). Возможно, лучшее, что Вы можете сделать — сообщить о своей проблеме в список рассылки Vagrant.
    • +1
      Версия вагранта 0.9.5, всё завелось без танцев с бубном -)

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