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

    Здорово, что многие вещи можно делать быстрее и проще, чем раньше. И отлично, что можно делать их именно тем способом, который удобен и нравится больше всего.
    Метки:
    Поделиться публикацией
    Похожие публикации
    Комментарии 14
    • –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, всё завелось без танцев с бубном -)
    • 0
      Гавно. Чтобы поставить это, нужно поставить вот это. И так до бесконечности. Ставится сотни мегабайт шелухи на комп

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