Vagrant box наиболее похож на инстансы Amazon EC2

37

Есть ли для Vagrant доступные для загрузки «ящики», которые близко отражают версию Linux и пакеты, доступные для экземпляров Amazon EC2?

Я тестирую локально, используя Vagrant, в настоящее время использую коробку Precise32. Я внедряю свой код в экземпляры Amazon EC2 с помощью AMI Amazon Linux AMI 2013.03.

Проблема, с которой я сталкиваюсь, заключается в том, что пакеты, доступные для установки на коробке Precise32, имеют разные имена, например

  • php5-fpm - в бродячей коробке
  • php54-fpm - в экземпляре Amazon EC2.

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

Итак, есть ли какие-нибудь бродячие боксы, которые будут близко отражать среду Amazon EC2.

Или я могу сказать бродячему ящику использовать тот же источник пакетов, что и экземпляр Amazon EC2?

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

Danack
источник
В надежде получить полезный ответ, я бы хотел установить локальную установку Amazon Linux для такого рода использования.
ceejayoz
1
Не используете Amazon Linux?
Майкл Хэмптон
1
@MichaelHampton Часто приятно иметь встроенный и поддерживаемый вариант Linux для Linux. Наличие таких функций, как инструменты AWS, готовых к работе, может оказаться бесценным.
ceejayoz
@ceejayoz Да, это полезно, но не так, когда остальная часть системы не работает. Меня не впечатлило качество сборки Amazon Linux; всегда кажется, что что-то важное сломано.
Майкл Хэмптон
YMMV, я думаю. Мне еще не приходилось сталкиваться с такой поломкой в ​​нашем кластере nginx / php-fpm / percona.
ceejayoz

Ответы:

11

Нет, нельзя использовать Amazon Linux за пределами EC2. Если вы хотите использовать производную Red Hat Enterprise Linux (то есть Amazon Linux), я рекомендую использовать CentOS 6 как в Vagrant, так и в EC2. Вы найдете много базовых блоков CentOS здесь , а официальные AMI перечислены здесь .

Sciurus
источник
1
Это выглядит более похоже, чем у большинства, но все же немного отличается, например, в Amazon linux есть отдельные PHP 5.3 и PHP 5.4, доступные в его пакетах. Я думаю, что моя идея иметь среду Vagrant, которая была бы достаточно близка, чтобы соответствовать среде Amazon, чтобы быть идентичной сценариям установки, неосуществима без большой работы по созданию пользовательского блока.
Данак
Да, Amazon Linux добавляет дополнительное и более новое программное обеспечение, помимо того, что включают в себя RHEL и CentOS. Вот почему я бы не рекомендовал использовать Amazon Linux.
Sciurus
1
Для тех (как я), которые находят это более 5 лет спустя, теперь, в 2018 году, этот ответ больше не верен:> «нет способа использовать Amazon Linux вне EC2» Amazon теперь предоставляет образы виртуальных машин (для VirtualBox, ANSIBLE, VMWare, Windowz-hyper-z-what и Docker) из Amazon Linux, который по сути является просто новым дистрибутивом CentOS, оптимизированным и предварительно настроенным для EC2 с предустановленными инструментами API Amazon и пакетами cloudinit, которые полностью поддерживают и поощряют вас. чтобы запустить его на территории, а также в AWS: Amazon Linux 2 aws.amazon.com/amazon-linux-2/#Resources
гигаватт
19

ПРИМЕЧАНИЕ. Этот ответ не о том, чтобы найти бродячую коробку для «Amazon Linux». Этот ответ заключается в том, чтобы помочь оригинальному постеру решить задачу использования той же системы в производственной среде, что и в dev, которая является Ubuntu. Как вы можете видеть в комментариях ниже, ОП согласился, что это решит его проблему.


Canonical предоставляет официальные версии Ubuntu AMI для EC2 и соответствующие официальные ящики Vagrant для загрузки.

Для Ubuntu 12.04 Precise AMI перечислены в

http://cloud-images.ubuntu.com/precise/current/

и бродячие коробки перечислены в

http://cloud-images.ubuntu.com/vagrant/precise/current/

Вы можете использовать это, чтобы начать с той же базовой конфигурации на EC2, которую вы используете локально в dev.

Эрик Хаммонд
источник
1
Они не будут действовать так, как Amazon Linux AMI на основе RHEL.
ceejayoz
2
Спасибо, это решило бы проблему для меня, так как мне безразлично, какой вариант Linux я использую. Тем не менее, было бы хорошо, если бы кто-нибудь решил эту проблему, сделав ароматизированную коробку Vagrant с ароматом Amazon.
Данак
1
@ceejayoz: Я предлагаю решить основную проблему ОП - иметь одинаковое изображение на dev + prod, переключая prod вместо переключения dev. Не все ответы должны ограничиваться допущениями, которые мы читаем в вопросе. То, что мы пытаемся сделать, это помочь спрашивающему решить их реальные проблемы с практическими решениями. «Нет, вы не можете этого сделать» - это правильный ответ, но я ценю «Вы можете достичь своей основной цели с помощью…»
Эрик Хаммонд
6

13 декабря 2017 года Amazon выпустила Amazon Linux 2 . Благодаря этому Amazon теперь предоставляет загружаемые образы, которые будут работать в VirtualBox, VMWare, MS Hyper-V.

До этого у вас была возможность использовать образ Amazon ECS Docker . Это по-прежнему доступно для v1 и v2.

Посмотрите, как работает Amazon Linux 2 в качестве виртуальной машины .

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

Майк Д
источник
4

Также стоит взглянуть на http://www.packer.io, его можно использовать, чтобы дать вам точно такое же изображение ami для вашего внешнего бродяги.

digitaladept
источник
1
Добро пожаловать в сбой сервера! Хотя это может теоретически ответить на вопрос, было бы предпочтительным включить здесь основные части ответа и предоставить ссылку для справки.
Slm
1
отметил, не хотел засорять ответ полным содержанием страницы установки и использования? но если это предпочтение, я сделаю это в следующий раз
digitaladept
Перефразировать это нормально, это не должны быть полные детали, а только суть.
Slm
1
Упаковщик не выдаст вам «точно такое же изображение ami для вашего внешнего бродяги». Насколько я понимаю, Packer может взять базовый образ ami и запустить собственный сценарий инициализации, чтобы создать выходной ami. Он также может использовать vagrant box (ovf) или образ .iso в качестве основы для запуска того же сценария обеспечения для создания выходного vagrant box. Хотя сценарий обеспечения будет таким же, базовые блоки будут отличаться до некоторой степени. Вы не можете создать бродячую коробку прямо из AMI.
шикарная
@poshest Итак, нам по-прежнему нужна та же среда разработки и производства (например, Ubuntu), чтобы блок Vagrant вел себя (почти) так же, как AMI?
Франклин Ю
2

Amazon Linux основан на Redhat / CentOS, поэтому имена будут более точно совпадать, если вы запустите один из них локально.

ОС Linux на основе Debian / Ubuntu изменяют имена пакетов, например, «dev» вместо «devel» в качестве суффикса для пакетов разработки.

Кстати, вы можете проверить вывод «rpm -qa» в экземпляре Amazon Linux, изменить его в соответствии с именами пакетов CentOS / Redhat, а затем подумать о создании собственной версии ОС, которая будет точно соответствовать версии Amazon.

Боб Робертс
источник
1

По состоянию на 2017 год да.

Имя ящика Vagrant - mvbcoding / awslinux, размещенный в облаке Vagrant (как и все другие общедоступные ящики Vagrant).

Вы можете запустить окно с помощью следующей команды.

vagrant init mvbcoding/awslinux; vagrant up --provider virtualbox
eneset
источник
добро пожаловать, не могли бы вы дать более подробный ответ?
bgtvfr
@bgtvfr он имеет в виду, что у нас теперь есть «Vagrant box, похожий на инстансы Amazon EC2», то есть mvbcoding / awslinux . Это единственная коробка с именем awslinuxна сегодняшний день.
Франклин Ю
Безопасно ли использовать публичные ящики, размещенные в облаке Vagrant? Проводит ли облако Vagrant какой-либо аудит, прежде чем принимать публичные ящики?
Варун
Кто знает? Вы должны спросить Митча Хасимото.
Енсет