¿Cómo obtener la última AMI de Ubuntu?

1 minute read

Logo Terraform


Recientemente necesitaba obtener la última AMI de Ubuntu Trusty 14.04 con soporte ENA habilitado para construir una imagen de Packer, así que decidí investigar y conseguí una forma de hacerlo en la CLI de AWS. Estas AMIs pueden conseguirse desde una página que las listas todas llamada ‘Ubuntu EC2 AMI Locator’. Estos enfoque funcionan pero para evitar errores humanos seguí investigando y encontré una forma de hacerlo directamente desde la plantilla de Packer. A continuación muestro las tres formas:

Usando la CLI de AWS

Mi primer enfoque fue usar la CLI de AWS como muestro a continuación:

aws ec2 describe-images \
--owners 099720109477 \
--filters Name=root-device-type,Values=ebs \
Name=architecture,Values=x86_64 \
Name=name,Values='*hvm-ssd/ubuntu-trusty-14.04*' \
Name=ena-support,Values=true \
--query 'sort_by(Images, &Name)[-1].[ImageId,CreationDate]' \
--output text --region us-east-1

ami-f0f8d695	2017-11-21T15:21:29.000Z

En este ejemplo, 099720109477 se refiere al ID de Ubuntu.

Usando Ubuntu Amazon EC2 AMI Locator

También conseguí la página Amazon EC2 AMI Locator el cual puede ser un recurso muy útil si no tienes acceso a la CLI de AWS.

Usando el filtro source ami de Packer:

En packer puedes usar el siguiente filtro source_ami_filter pasándole parámetros similares a los de la CLI de AWS:

{
  "builders": [
    {
      "type": "amazon-ebs",
      "region": "us-east-1",
      "instance_type": "c3.xlarge",
      "ena_support": true,
      "source_ami_filter": {
        "filters": {
        "virtualization-type": "hvm",
        "name": "ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*",
        "root-device-type": "ebs"
        },
        "owners": ["099720109477"],
        "most_recent": true
      },
    }
  ]
}

Referencias:

Leave a Comment