Como encontrar AMI ID de CentOS 7 image no mercado AWS?
Tenho estado a lançar instâncias EC2 ao aceder ao site AWS, carregando no botão "lançamento" e seguindo os passos proscritos. Agora eu gostaria de lançar instância a partir de um script Ansible, e para fazer isso eu (acho que eu) preciso do ID AMI da imagem que Eu desejo lançar.
O problema é que estou lançando uma imagem do "mercado", e não consigo encontrar o ID AMI. Em particular, estou usando a imagem Centos 7. Isto é fácil de encontrar na interface web, basta ir para o mercado e procure por "centos", a imagem que eu quero é a primeira encontrada, mas a informação fornecida sobre a imagem não parece incluir o ID AMI que eu preciso para lançá-lo a partir de um script. O workaround é lançar manualmente uma imagem, e, em seguida, ao inspecionar a imagem em execução, o ID AMI é dado. Mas há uma maneira mais fácil de encontrá-lo?2 answers
Os CentOS publicam os seus códigos de produtos AMI nas suas wiki . O wiki fornece as seguintes informações para os últimos CentOS 7 AMI:
- proprietário:
aws-marketplace
- Código Do Produto:
aw0evgkw8e5c1q413zgy5pjce
Usando esta informação, podemos consultar describe-images com o AWS CLI:
Exemplo:
aws ec2 describe-images \
--owners 'aws-marketplace' \
--filters 'Name=product-code,Values=aw0evgkw8e5c1q413zgy5pjce' \
--query 'sort_by(Images, &CreationDate)[-1].[ImageId]' \
--output 'text'
Resultado:
ami-6d1c2007
Esta pesquisa devolve um único ID AMI, seleccionado ordenando a colecção pela data de criação e depois selecciona o último elemento (mais recente) da colecção.
Por cento wiki, multiple AMI ids may be associated with a product key
, por isso, embora esta consulta apenas retornasse um único AMI, porque existe apenas um que corresponda a este produto... no futuro, se um novo AMI é criado para este código de produto por qualquer razão esta consulta irá devolvê-lo em vez disso.
Se está à procura de todas as imagens Centos7
$ aws --region us-west-2 ec2 describe-images --owners aws-marketplace --filters Name=product-code,Values=aw0evgkw8e5c1q413zgy5pjce --query 'Images[*].[CreationDate,Name,ImageId]' --filters "Name=name,Values=CentOS Linux 7*" --region us-west-2 --output table | sort -r
| 2018-06-13T15:58:14.000Z| CentOS Linux 7 x86_64 HVM EBS ENA 1805_01-b7ee8a69-ee97-4a49-9e68-afaee216db2e-ami-77ec9308.4 | ami-3ecc8f46 |
| 2018-05-17T09:30:44.000Z| CentOS Linux 7 x86_64 HVM EBS ENA 1804_2-b7ee8a69-ee97-4a49-9e68-afaee216db2e-ami-55a2322a.4 | ami-5490ed2c |
| 2018-04-04T00:11:39.000Z| CentOS Linux 7 x86_64 HVM EBS ENA 1803_01-b7ee8a69-ee97-4a49-9e68-afaee216db2e-ami-8274d6ff.4 | ami-0ebdd976 |
| 2017-12-05T14:49:18.000Z| CentOS Linux 7 x86_64 HVM EBS 1708_11.01-b7ee8a69-ee97-4a49-9e68-afaee216db2e-ami-95096eef.4 | ami-b63ae0ce |
Adicione-lhe uma pesquisa semelhante disponível para o RedHat
aws ec2 describe-images --owners 309956199498 --query 'Images[*].[CreationDate,Name,ImageId]' --filters "Name=name,Values=RHEL-7.?*GA*" --region us-east-1 --output table | sort -r
| 2018-03-23T20:42:08.000Z | RHEL-7.5_HVM_GA-20180322-x86_64-1-Hourly2-GP2 | ami-6871a115 |
| 2017-08-08T15:37:31.000Z | RHEL-7.4_HVM_GA-20170808-x86_64-2-Hourly2-GP2 | ami-c998b6b2 |
| 2017-07-24T15:44:39.000Z | RHEL-7.4_HVM_GA-20170724-x86_64-1-Hourly2-GP2 | ami-cdc999b6 |
| 2016-10-26T22:32:29.000Z | RHEL-7.3_HVM_GA-20161026-x86_64-1-Hourly2-GP2 | ami-b63769a1 |
| 2015-11-12T21:06:58.000Z | RHEL-7.2_HVM_GA-20151112-x86_64-1-Hourly2-GP2 | ami-2051294a |
| 2015-02-25T20:24:23.000Z | RHEL-7.1_HVM_GA-20150225-x86_64-1-Hourly2-GP2 | ami-12663b7a |
| 2015-02-09T22:54:40.000Z | RHEL-7.0_HVM_GA-20150209-x86_64-1-Hourly2-GP2 | ami-60a1e808 |
| 2014-10-17T20:29:24.000Z | RHEL-7.0_HVM_GA-20141017-x86_64-1-Hourly2-GP2 | ami-a8d369c0 |
| 2014-05-28T19:17:11.000Z | RHEL-7.0_GA_HVM-x86_64-3-Hourly2
| ami-785bae10 |