Cuadro vagabundo más similar a las instancias de Amazon EC2

37

¿Hay alguna 'caja' disponible para descargar para Vagrant que refleje de cerca la versión de Linux y los paquetes disponibles para las instancias de Amazon EC2?

Estoy probando localmente usando Vagrant, actualmente usando el cuadro Precise32. Estoy implementando mi código en instancias de Amazon EC2 con la AMI 'Amazon Linux AMI 2013.03'.

El problema al que me enfrento es que los paquetes disponibles para instalar en el cuadro Precise32 tienen diferentes nombres, por ejemplo

  • php5-fpm - en la caja vagabunda
  • php54-fpm: en la instancia de Amazon EC2.

Aunque podría solucionar esto usando variables en los archivos de configuración de Puppet para manejar los diferentes nombres de paquetes, eso suena un poco como un truco.

Entonces, ¿hay alguna caja vagabunda disponible que refleje de cerca el entorno de Amazon EC2?

¿O es posible que le diga a una caja vagabunda que use la misma fuente de paquetes que una instancia de Amazon EC2?

Para aclarar una cosa, la razón por la que quiero hacer esto es para poder probar localmente sin tener que comprometer todo primero. Aunque Vagrant tiene soporte para AWS como proveedor, eso en realidad no lograría poder realizar pruebas locales.

Danack
fuente
Esperando que esto obtenga una respuesta útil, me encantaría tener una instalación local de Amazon Linux para este tipo de caso de uso.
ceejayoz
1
¿No usas Amazon Linux?
Michael Hampton
1
@MichaelHampton A menudo es bueno tener una variante de Linux construida y compatible con Amazon. Tener cosas como las herramientas de AWS funcionan de manera inmediata puede ser invaluable.
ceejayoz
@ceejayoz Sí, eso es útil, pero no tanto cuando el resto del sistema no funciona. No me ha impresionado la calidad de construcción de Amazon Linux; siempre parece haber algo importante que está roto.
Michael Hampton
YMMV, supongo. Todavía tengo que encontrar esa ruptura en nuestro clúster nginx / php-fpm / percona.
ceejayoz

Respuestas:

11

No, no hay forma de usar Amazon Linux fuera de EC2. Si desea utilizar un derivado de Red Hat Enterprise Linux (que es Amazon Linux), le recomiendo usar CentOS 6 tanto en Vagrant como en EC2. Encontrará muchas cajas base CentOS aquí , y las AMI oficiales se enumeran aquí .

Sciurus
fuente
1
Eso parece ser más similar que la mayoría, pero aún un poco diferente, por ejemplo, Amazon Linux tiene PHP 5.3 y PHP 5.4 separados disponibles en sus paquetes. Creo que mi idea de tener un entorno Vagrant que sea lo suficientemente cercano como para que coincida con el entorno de Amazon para que sea idéntico para los scripts de instalación no es factible sin mucho trabajo en la creación de cuadros personalizados.
Danack
Correcto, Amazon Linux agrega software adicional y más nuevo más allá de lo que incluyen RHEL y CentOS. Es por eso que no recomendaría usar Amazon Linux.
Sciurus
1
Para aquellos (como yo) que encuentran esto más de 5 años después, ahora, en 2018, esta respuesta ya no es cierta:> "no hay forma de usar Amazon Linux fuera de EC2" Amazon ahora proporciona imágenes de máquinas virtuales (para VirtualBox, ansible, VMWare, Windowz-hyper-z-whatever y Docker) de Amazon Linux, que es básicamente una distribución de CentOS reciente que está optimizada y preconfigurada para EC2 con las herramientas API de Amazon y los paquetes cloudinit preinstalados, y lo apoyan y alientan totalmente para ejecutarlo localmente
gigawatt
19

NOTA: Esta respuesta no se trata de encontrar un cuadro vagabundo para "Amazon Linux". Esta respuesta se trata de ayudar al póster original a resolver el objetivo de usar el mismo sistema en producción que en dev, que resulta ser Ubuntu. Como puede ver en los comentarios a continuación, OP acordó que esto resolvería su problema.


Canonical proporciona AMI de Ubuntu oficiales en EC2 y las correspondientes cajas Vagrant oficiales para descargar.

Para Ubuntu 12.04 Precise, las AMI se enumeran en

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

y los cuadros Vagabundos se enumeran en

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

Puede usar esto para comenzar con la misma configuración base en EC2 que está usando localmente en dev.

Eric Hammond
fuente
1
Esos no actuarán como el AMI de Amazon Linux basado en RHEL.
ceejayoz
2
Gracias, eso resolvería el problema por mí mismo, ya que no me importa particularmente qué sabor de Linux uso. Sin embargo, aún sería bueno ver si alguien lo ha resuelto haciendo una caja Vagrant con sabor a Amazon.
Danack
1
@ceejayoz: Estoy proponiendo resolver el problema central del OP de tener la misma imagen en dev + prod al cambiar prod en lugar de cambiar dev. No todas las respuestas deben limitarse a los supuestos que leemos en la pregunta. Lo que estamos tratando de hacer es ayudar al interlocutor a resolver sus problemas del mundo real con soluciones prácticas. "No, no puedes hacerlo" es una respuesta válida, pero agradezco "Puedes lograr tu objetivo subyacente ..."
Eric Hammond
6

El 13 de diciembre de 2017, Amazon lanzó Amazon Linux 2 . Con esto, Amazon ahora proporciona imágenes descargables que se ejecutarán en VirtualBox, VMWare, MS Hyper-V.

Antes de esto, tenía la opción de usar la imagen Docker de Amazon ECS . Eso sigue estando disponible para v1 y v2.

Eche un vistazo a Ejecutar Amazon Linux 2 como una máquina virtual local .

Sospecho que alguien publicará un cuadro vagabundo pronto. Mientras tanto, es bastante fácil construir una caja base usted mismo.

Mike D
fuente
4

También vale la pena echarle un vistazo a http://www.packer.io, se puede usar para darle exactamente la misma imagen ami para su vagabundo externo

digitaladept
fuente
1
¡Bienvenido a Server Fault! Si bien esto puede responder teóricamente la pregunta, sería preferible incluir aquí las partes esenciales de la respuesta y proporcionar el enlace para referencia.
slm
1
notado, ¿no quería ensuciar la respuesta con el contenido completo de la página de instalación y uso? pero si esa es la preferencia, voy a hacer que la próxima vez
digitaladept
Está bien parafrasear, no tiene que ser los detalles completos, sino solo la esencia.
slm
1
Packer no le dará "exactamente la misma imagen ami para su vagabundo externo". Según tengo entendido, Packer puede tomar una imagen base ami y ejecutar su script de aprovisionamiento personalizado para crear un ami de salida. También puede usar un cuadro vagabundo (ovf) o una imagen .iso como base para ejecutar el mismo script de aprovisionamiento para crear un cuadro vagabundo de salida. Si bien el script de aprovisionamiento será el mismo, los cuadros base serán diferentes en cierta medida. No puede crear un cuadro vagabundo directamente desde un AMI.
poshest
@poshest ¿Entonces todavía necesitamos el mismo entorno de desarrollo y producción (como Ubuntu) para que la caja Vagrant se comporte (casi) igual que una AMI?
Franklin Yu
2

Amazon Linux se basa en Redhat / CentOS, por lo que los nombres coincidirán más estrechamente si ejecuta uno de ellos localmente.

Los sistemas operativos Linux basados ​​en Debian / Ubuntu cambian los nombres de los paquetes, por ejemplo, "dev" en lugar de "devel" como sufijo para los paquetes de desarrollo.

Por cierto, es posible que desee comprobar la salida de "rpm -qa" en una instancia de Amazon Linux, combinarlo para que coincida con los nombres de los paquetes de CentOS / Redhat, y luego pensar en crear su propia versión del sistema operativo que coincida estrechamente con la de Amazon.

Bob Roberts
fuente
1

A partir de 2017, sí.

El nombre del cuadro Vagrant es mvbcoding / awslinux alojado en la nube Vagrant (como todos los demás cuadros públicos Vagrant).

Puede iniciar un cuadro con el siguiente comando.

vagrant init mvbcoding/awslinux; vagrant up --provider virtualbox
eneset
fuente
Bienvenido, ¿puede dar una respuesta más detallada?
bgtvfr
@bgtvfr quiere decir que ahora tenemos un "Vagabundo similar a las instancias de Amazon EC2", es decir, mvbcoding / awslinux . Ese es el único cuadro nombrado awslinuxcon diferencia.
Franklin Yu
¿Es seguro usar cajas públicas alojadas en la nube Vagrant? ¿La nube de Vagrant realiza alguna auditoría antes de aceptar casillas públicas?
Varun
¿Quién sabe? Tienes que preguntarle a Mitch Hashimoto.
eneset