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

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

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

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

кукла и шеф-повар на самом деле не часть бродяги, они их собственное дело, не так ли?

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

9
задан JakeGould
10.03.2023 15:01 Количество просмотров материала 2651
Распечатать страницу

5 ответов

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

залетный

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

  • импорт готовых изображений (называемых" коробками")
  • настройки виртуальной машины настройки (IP-адреса, имена хостов, проброс портов, памяти и т. д.)
  • запуск программного обеспечения подготовки, как Puppet или Chef

заметьте что оно не устанавливает програмное обеспечение или не Setup машина мимо загрузки виртуальной машины и настройки VirtualBox. Думайте об этом как о скриптовом движке для VirtualBox.

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

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

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

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

2. Управление Версиями

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

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

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

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

146
отвечен Adam Lukens 2023-03-11 22:49

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

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

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

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

вам даже не нужно беспокоиться о том, что они создали с помощью Chef или Puppet или просто сценариев оболочки. (Итак, вам нужно сделать bundle install или в противном случае убедитесь, что у вас все установлено, но все равно ничего страшного.)

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

26
отвечен iconoclast 2023-03-12 01:06

возможность интеграции chef или puppet с VM provisioning является ключевым фактором. Большинство пользователей Бродяга скажет вам, что они работают "бродяга предоставления" и иногда "бродяга перезагрузить" гораздо чаще, чем "бродяга вверх" или "бродяга уничтожить". Эти задачи указывают на реальную работу не крутятся вверх/вниз, но ВМ 'управление' их постфактум.

чтобы задать лучший вопрос (поставленный опытными пользователями Chef, так или иначе), может быть, почему используйте Vagrant, а не нож с соответствующим плагином (доберется до плагин virtualbox, через мгновение)? Например, передача значений аргументов, хранящихся в пакете данных, плагину knife является (способом) более интеллектуальным, гибким и управляемым, чем жонглирование одним гигантским Vagrantfile. Обычно я определяю свои "динамические" ресурсы, такие как количество процессоров, объем памяти, ОС для развертывания, имя хоста, IP, маршруты и т. д., в тегах данных chef, так что мне не нужно постоянно менять свой рецепт; -). Редактирование базы данных через веб-интерфейс Chef-это очень простая задача ввода данных, которую я могу дать большинство младших операторов. С Vagrantfile, ваш навсегда modiyfing код и верить или нет-код перерывы-который в значительной степени гарантирует, что вы не будете передавать простые изменения в оперативный персонал, когда-либо.

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

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

8
отвечен Andrew 2023-03-12 03:23

вот еще два варианта использования разработчика, которые vagrant упрощает (над "простым" VirtualBox). Я не видел, чтобы эти варианты использования назывались конкретно в предыдущих ответах.

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

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

Да, "обычная" VirtualBox может быть и здесь, но условные обозначения на бомжа, сделать его более простым, чтобы установить эти сценарии до.

8
отвечен Ben XO 2023-03-12 05:40

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

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

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

(Я до сих пор не нашли применение Chef или Puppet, хотя...)

0
отвечен Chloe 2023-03-12 07:57

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх