Почему я должен использовать Vagrant вместо VirtualBox?

Я много лет использую VirtualBox для создания среды разработки.

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

С VirtualBox я устанавливаю и настраиваю среду отлично, тогда я могу упаковать ее как OVA или что-то еще и поделиться ею с другими пользователями офиса. Вы можете сделать снимок в VirtualBox, если что-то пойдет не так.

Кукольный и шеф-повар arenâ € ™ т действительно часть Vagrant, theyâ € ™ s их собственная вещь правильно?

Итак, какие преимущества специально предлагает Vagrant над VirtualBox самостоятельно?

210 голосов | спросил John Hunt 17 PMpWed, 17 Apr 2013 18:39:32 +040039Wednesday 2013, 18:39:32

5 ответов


145

Это большой вопрос, поэтому я собираюсь разбить его на два раздела.

Vagrant

Vagrant используется для настройки одной или нескольких виртуальных машин:

  • Импорт предварительно сделанных изображений (называемых «ящиками»)
  • Настройка параметров, специфичных для VM (IP-адрес, имена хостов, переадресация портов, память и т. д.).
  • Запуск программного обеспечения для обеспечения безопасности, такого как Puppet или Chef

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

Вот несколько причин, по которым я видела использование Vagrant поверх только VirtualBox.

1. Настройка сетей с несколькими виртуальными машинами с легкостью

Большая часть содержимого Vagrant power-user, которое я читал, касалась одновременного создания нескольких виртуальных машин. Vagrant дает вам один конфигурационный файл, чтобы настроить их, позволяя вам запускать все из них с помощью одной команды.

Предположим, вы настроили три виртуальных машины для совместной работы друг с другом, используя статические IP-адреса в подсети 192.168.1. *. Вы попадаете в местоположение, которое уже использует эту подсеть для передачи IP-адресов, и ваши виртуальные машины теперь конфликтуют. С помощью Vagrant вы можете просто отредактировать Vagrantfile и перезагрузить виртуальные машины, тогда как с VirtualBox вам придется открыть настройки для каждой виртуальной машины, если не загружать каждую виртуальную машину и менять ее внутри.

2. Контроль источника

Поместив настройки в текстовый файл, он позволяет настроить конфигурацию под контролем источника. Сделали некоторые изменения на прошлой неделе и случайно сломали изображение? Просто верните изменения и перезагрузите виртуальную машину. Вы можете сделать это с моментальными снимками VirtualBox, но это займет гораздо больше места, чем просто Vagrantfile.

3. Различные платформы

В таких местах, как http://vagrantbox.es , доступно большое количество ящиков. Это позволяет вам попробовать различные ОС или дистрибутивы, применяя одинаковые настройки для настройки аналогичных сред. Это может помочь в тестировании или добавлении поддержки новых платформ и потребует много времени, используя только VirtualBox.

Существует много аргументов в пользу использования программного обеспечения для обеспечения, а также для создания снимков изображений. Для дополнительного обсуждения я расскажу вам о превосходной статье Стивена Нельсона-Смита Как создать 100 веб-серверов за один день .

ответил Adam Lukens 27 AMpSat, 27 Apr 2013 09:41:29 +040041Saturday 2013, 09:41:29
25

В дополнение к превосходному ответу, данному Адамом, Бродяга связывает все вместе. Хотя шеф-повар и кукольный (и скрипты соля и оболочки, а также любой другой прокси-сервер, который вы хотите использовать), являются отдельными вещами, Vagrant связывает все это вместе и заставляет его работать только с vagrant up .

Эта команда будет

  1. просто запустите VM, если это все, что нужно, но оно также будет
  2. создайте поле из указанного базового поля, если это еще не сделано, но если у вас даже нет базового поля на вашем компьютере, он сначала
  3. извлеките его из своего URL-адреса и загрузите его на свой компьютер.

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

Вам даже не нужно беспокоиться о том, что они установили вещи, используя Chef или Puppet или просто скрипты оболочки. (Хорошо, поэтому вам может понадобиться установить bundle install или иначе убедиться, что у вас все установлено, но все еще не очень важно.)

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

ответил iconoclast 9 Jpm1000000pmThu, 09 Jan 2014 21:56:37 +040014 2014, 21:56:37
8

Возможность интеграции шеф-повара или марионетки с предоставлением виртуальных машин является ключевым. Большинство бродячих пользователей скажут вам, что они выполняют «бродяжничество» и иногда «бродячую перезагрузку» гораздо чаще, чем «бродячие» или «бродячие разрушения». Эти задачи указывают на то, что реальная работа заключается не в разворачивании виртуальных машин, а в управлении ими после факта.

Чтобы создать лучший вопрос (созданный опытными шеф-поварами, во всяком случае), может быть почему-то использовать Vagrant, а не нож с соответствующим плагином (через мгновение попадет в плагин Virtualbox)? Например, передача значений аргументов, хранящихся в пакете данных, в плагин для ножей (путь) более интеллектуальна, гибка и управляема, чем манипулирование одним гигантским Vagrantfile. Обычно я определяю свои «динамические» ресурсы, такие как # процессоров, объем памяти, какая ОС для развертывания, имя хоста, IP, маршруты и т. Д. В базах данных (-ов) шеф-повара, так что мне не нужно менять свой рецепт; ). Редактирование базы данных через веб-интерфейс Chef - очень простая задача ввода данных, которую я могу предоставить большинству младших операторов. С Vagrantfile, ваш вечный код modijfing и верьте ему или нет - перерывы кода - что в значительной степени гарантирует, что вы НЕ будете передавать простые изменения сотрудникам Operations.

Помимо того, что у ножа еще нет плагина для виртуального бокса (хотя я предполагаю, что один в недалеком будущем), уже есть плагины для большинства продуктов «виртуализации» предприятия, в том числе vmware, xenserver и почти все основные провайдер «облака». Это означает, что нож намного превосходит то, что предлагает Vagrant, если /когда вы готовы перейти за пределы виртуального бокса. На данный момент сообщество шеф-поваров, похоже, счастливо позволить пользователям виртуального бокса сжиматься вместе с Vagrant, не интегрируя apache virtualbox для ножевого плагина. Существует ножевой бранный плагин, который позволяет использовать пакеты данных для передачи аргументов. Но для него все еще требуется бродячее программное обеспечение, и это монолитный Vagrantfile для работы.

Итак, я выйду на конечность и скажу, что Вагрант определенно НЕ «лучше», чем Шеф-повар с ножом; но необходимо (на данный момент), если вы настаиваете на виртуальном боксе и, возможно, «проще», чем управляете шеф-поваром с мешками для хранения данных, если у вас достаточно простая среда для управления.

ответил Andrew 21 MarpmFri, 21 Mar 2014 18:13:49 +04002014-03-21T18:13:49+04:0006 2014, 18:13:49
8

Вот еще два примера использования брандмауэров, которые упрощают (над «простым» VirtualBox). Я не видел эти прецеденты, вызванные специально в предыдущих ответах.

  1. Бродяга помогает с максимально возможной близостью друг к другу платформы разработки и производства. В идеальном мире вы обеспечили бы производственную среду ИСПОЛЬЗОВАННЫМИ сценариями, используемыми для обеспечения Vagrant VM, минимизируя неожиданности во время развертывания.

  2. Интеграционные тесты и непрерывная интеграция: Vagrant легко контролировать из тестов, и поэтому целые стеки с несколькими машинами можно легко контролировать с помощью таких инструментов, как Jenkins при выполнении тестовых прогонов.

Да, здесь может использоваться «простой» VirtualBox, но соглашения, используемые бродягой, упрощают установку этих сценариев.

ответил Ben XO 20 J0000006Europe/Moscow 2014, 15:19:16
0

Vagrant реферат виртуальных машин, чтобы он мог легко переключать реализации виртуальной машины. Вы можете переключиться с Virtual Box на AWS или Digital Ocean. Это похоже на использование SQL вместо языка запросов, специфичного для базы данных.

Vagrant позволяет разработчикам быстро создавать свою среду только с одной командой, и она точно такая же, как и у всех остальных. Это важно в крупных компаниях, где разработчики приходят & amp; часто. Это может сократить время на установку от 3 дней до 1 часа.

+ То, что сказал Адам.

(Я все еще не нашел использования для шеф-повара или кукольного, хотя ...)

ответил Chloe 29 MaramThu, 29 Mar 2018 04:58:39 +03002018-03-29T04:58:39+03:0004 2018, 04:58:39

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132