Caixa Vagrant mais semelhante às instâncias do Amazon EC2


37

Existem 'caixas' disponíveis para download no Vagrant que espelham de perto a versão e os pacotes Linux disponíveis para instâncias do Amazon EC2?

Estou testando localmente usando o Vagrant, atualmente usando a caixa Precise32. Estou implantando meu código nas instâncias do Amazon EC2 com a AMI 'Amazon Linux AMI 2013.03'.

O problema que estou enfrentando é que os pacotes disponíveis para instalação na caixa Precise32 têm nomes diferentes, por exemplo

  • php5-fpm - na caixa do vagrant
  • php54-fpm - na instância do Amazon EC2.

Embora eu pudesse corrigir isso usando variáveis ​​nos arquivos de configuração do Puppet para lidar com os diferentes nomes de pacotes, isso parece um hack.

Portanto, existem caixas vagantes disponíveis que espelham o ambiente do Amazon EC2 de perto.

Ou é possível dizer a uma caixa vagrant para usar a mesma fonte de pacotes que uma instância do Amazon EC2?

Para esclarecer uma coisa - a razão pela qual eu quero fazer isso é para que eu possa testar localmente sem ter que confirmar tudo primeiro. Embora o Vagrant tenha suporte para a AWS como um provedor, isso não seria capaz de testar localmente.


Esperando que isso obtenha uma resposta útil, eu adoraria ter uma instalação local do Amazon Linux para esse tipo de caso de uso.
ceejayoz

1
Não usa o Amazon Linux?
Michael Hampton

1
@MichaelHampton Muitas vezes, é bom ter uma variante Linux construída e suportada pela Amazon. Ter coisas como as ferramentas da AWS prontas para uso pode ser inestimável.
ceejayoz

@ceejayoz Sim, isso é útil, mas não tanto quando o resto do sistema não funciona. Não fiquei impressionado com a qualidade de construção do Amazon Linux; sempre parece haver algo importante que está quebrado.
Michael Hampton

YMMV, eu acho. Ainda não encontrei essa falha em nosso cluster nginx / php-fpm / percona.
ceejayoz

Respostas:


11

Não, não há como usar o Amazon Linux fora do EC2. Se você deseja usar um derivado do Red Hat Enterprise Linux (que é o Amazon Linux), recomendo usar o CentOS 6 no Vagrant e no EC2. Você encontrará muitas caixas base do CentOS aqui e as AMIs oficiais estão listadas aqui .


1
Isso parece ser mais semelhante do que a maioria, mas ainda um pouco diferente, por exemplo, o Amazon linux possui PHP 5.3 e PHP 5.4 disponíveis em seus pacotes. Eu acho que minha idéia de ter um ambiente Vagrant que seja próximo o suficiente para corresponder ao ambiente da Amazon, para ser idêntica aos scripts de instalação, não é viável sem muito trabalho na criação de caixas personalizadas.
Danack 14/05

Certo, o Amazon Linux adiciona software adicional e mais recente além do que o RHEL e o CentOS incluem. É por isso que eu não recomendaria o uso do Amazon Linux.
Sciurus #

1
Para aqueles (como eu) que descobriram isso mais de 5 anos depois, agora em 2018, essa resposta não é mais verdadeira:> "não há como usar o Amazon Linux fora do EC2" A Amazon agora fornece imagens de máquinas virtuais (para VirtualBox, (VMWare, Windowz-hyper-z-qualquer e Docker) do Amazon Linux, que é basicamente apenas uma distribuição recente do CentOS otimizada e pré-configurada para o EC2 com as ferramentas de API da Amazon e os pacotes cloudinit pré-instalados, e eles o apoiam e incentivam totalmente para executá-lo no local, bem como na AWS: Amazon Linux 2 aws.amazon.com/amazon-linux-2/#Resources
gigawatts

19

NOTA: Esta resposta não é sobre como encontrar uma caixa vaga para "Amazon Linux". Esta resposta é sobre ajudar o pôster original a resolver o objetivo de usar o mesmo sistema em produção e no dev, que é o Ubuntu. Como você pode ver nos comentários abaixo, o OP concordou que isso resolveria o problema dele.


A Canonical fornece AMIs oficiais do Ubuntu no EC2 e as caixas oficiais correspondentes do Vagrant para download.

Para o Ubuntu 12.04 Precise, as AMIs estão listadas em

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

e as caixas do Vagrant estão listadas em

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

Você pode usar isso para começar com a mesma configuração básica no EC2 que você está usando localmente no dev.


1
Isso não funcionará como o Amazon Linux AMI baseado em RHEL.
ceejayoz

2
Obrigado, isso resolveria o problema para mim, pois não me importo particularmente com o sabor do Linux que uso. No entanto, ainda seria bom ver se alguém o resolveu fazendo uma caixa Vagrant com sabor da Amazônia.
Danack 8/13

1
@ceejayoz: Estou propondo resolver o problema central do OP de ter a mesma imagem no dev + prod alternando prod em vez de alternar dev. Nem todas as respostas precisam se limitar às suposições que lemos na pergunta. O que estamos tentando fazer é ajudar o interlocutor a resolver seus problemas do mundo real com soluções práticas. "Não, você não pode fazê-lo" é uma resposta válida, mas eu aprecio "Você pode realizar seu objetivo subjacente por ..."
Eric Hammond

6

Em 13 de dezembro de 2017, a Amazon lançou o Amazon Linux 2 . Com isso, a Amazon agora fornece imagens para download que serão executadas no VirtualBox, VMWare, MS Hyper-V.

Antes disso, você tinha a opção de usar a imagem do Amazon ECS Docker . Isso continua disponível para as v1 e v2.

Veja Executando o Amazon Linux 2 como uma máquina virtual no local .

Eu suspeito que alguém irá publicar uma caixa de vagabundo em breve. Nesse intervalo, é bastante fácil construir você mesmo uma caixa de base .


4

Também vale a pena dar uma olhada no http://www.packer.io, que pode ser usado para fornecer exatamente a mesma imagem ami para seu vagrant externo


1
Bem-vindo à falha do servidor! Embora isso possa teoricamente responder à pergunta, seria preferível incluir aqui as partes essenciais da resposta e fornecer o link para referência.
SLM

1
observou, não queria desarrumar a resposta com o conteúdo completo da página de instalação e uso? mas se isso é a preferência, eu vou fazer isso na próxima vez
digitaladept

Não há problema em parafrasear, não precisa ser todos os detalhes, mas apenas a essência.
SLM

1
O Packer não fornecerá "exatamente a mesma imagem para o seu vagrant externo". Pelo que entendi, o Packer pode pegar uma imagem de base ami e executar seu script de provisionamento personalizado para criar uma ami de saída. Também pode usar uma imagem de caixa vagrant (ovf) ou .iso como base para executar o mesmo script de provisionamento para criar uma caixa vagrant de saída. Embora o script de provisionamento seja o mesmo, as caixas base diferem até certo ponto. Você não pode criar uma caixa vagrant diretamente de uma AMI.
poshest

@poshest Então, ainda precisamos do mesmo ambiente de desenvolvimento e produção (como o Ubuntu) para fazer com que a caixa do Vagrant se comporte (quase) da mesma maneira que uma AMI?
Franklin Yu

2

O Amazon Linux é baseado no Redhat / CentOS, portanto os nomes corresponderão mais se você executar um deles localmente.

Os sistemas operacionais Linux baseados no Debian / Ubuntu alteram os nomes dos pacotes, por exemplo, "dev" em vez de "devel" como um sufixo para pacotes de desenvolvimento.

Aliás, convém verificar a saída de "rpm -qa" em uma instância do Amazon Linux, adaptá-la para corresponder aos nomes de pacotes do CentOS / Redhat e, em seguida, pense em criar sua própria versão do sistema operacional que corresponda à da Amazon.


1

A partir de 2017, sim.

O nome da caixa do Vagrant é mvbcoding / awslinux hospedado na nuvem do Vagrant (como todas as outras caixas públicas do Vagrant).

Você pode iniciar uma caixa com o seguinte comando.

vagrant init mvbcoding/awslinux; vagrant up --provider virtualbox

bem-vindo, você pode dar uma resposta mais detalhada?
precisa saber é o seguinte

@bgtvfr ele quer dizer que agora temos uma “caixa Vagrant semelhante às instâncias do Amazon EC2”, ou seja, o mvbcoding / awslinux . Essa é a única caixa nomeada awslinuxde longe.
Franklin Yu

É seguro usar caixas públicas hospedadas na nuvem do Vagrant? A nuvem do Vagrant faz alguma auditoria antes de aceitar caixas públicas?
Varun

Quem sabe? Você precisa perguntar a Mitch Hashimoto.
eneset
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.