Amazon web services 如何在AWS Marketplace中查找CentOS 7映像的AMI ID?
我一直在通过登录AWS站点,点击“启动”按钮并遵循禁止的步骤来启动EC2实例。现在,我想从Ansible脚本启动实例,为此,我(认为我)需要我希望启动的映像的AMI IDAmazon web services 如何在AWS Marketplace中查找CentOS 7映像的AMI ID?,amazon-web-services,amazon-ec2,centos7,amazon-ami,Amazon Web Services,Amazon Ec2,Centos7,Amazon Ami,我一直在通过登录AWS站点,点击“启动”按钮并遵循禁止的步骤来启动EC2实例。现在,我想从Ansible脚本启动实例,为此,我(认为我)需要我希望启动的映像的AMI ID 问题是我正在从“市场”启动一个映像,但我找不到AMI ID。特别是我使用的是Centos 7映像。这很容易在web界面中找到,只需转到市场并搜索“centos”,我想要的图像是第一个找到的图像,但是提供的关于图像的信息似乎不包括我需要从脚本启动它的AMI ID。解决方法是手动启动映像,然后在检查正在运行的映像时,给出AMI I
问题是我正在从“市场”启动一个映像,但我找不到AMI ID。特别是我使用的是Centos 7映像。这很容易在web界面中找到,只需转到市场并搜索“centos”,我想要的图像是第一个找到的图像,但是提供的关于图像的信息似乎不包括我需要从脚本启动它的AMI ID。解决方法是手动启动映像,然后在检查正在运行的映像时,给出AMI ID。但是有更简单的方法找到它吗?CentOS将AMI产品代码发布到他们的网站上。wiki为最新的CentOS 7 AMI提供以下信息:
- 所有者:
aws市场
- 产品代码:
aw0evgkw8e5c1q413zgy5pjce
aws ec2 describe-images \
--owners 'aws-marketplace' \
--filters 'Name=product-code,Values=aw0evgkw8e5c1q413zgy5pjce' \
--query 'sort_by(Images, &CreationDate)[-1].[ImageId]' \
--output 'text'
ami-6d1c2007
输出:
aws ec2 describe-images \
--owners 'aws-marketplace' \
--filters 'Name=product-code,Values=aw0evgkw8e5c1q413zgy5pjce' \
--query 'sort_by(Images, &CreationDate)[-1].[ImageId]' \
--output 'text'
ami-6d1c2007
此查询返回单个AMI ID,通过按创建日期对集合进行排序,然后选择集合中的最后一个(最近的)元素来选择
根据CentOS wiki,
多个AMI ID可能与一个产品密钥相关联,因此尽管此查询当前仅返回一个AMI,因为当前仅存在一个与此产品匹配的AMI。。。将来,如果出于任何原因为此产品代码创建了新的AMI,则此查询将返回它。如果您正在查找所有Centos7图像
$ aws 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 |
添加可用于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 |
我在这里使用了其他答案来测试Terraform中的AMI查找
使用
aws ec2 describe-images \
--owners aws-marketplace \
--filters '[
{"Name": "name", "Values": ["CentOS Linux 7*"]},
{"Name": "virtualization-type", "Values": ["hvm"]},
{"Name": "architecture", "Values": ["x86_64"]},
{"Name": "image-type", "Values": ["machine"]}
]' \
--query 'sort_by(Images, &CreationDate)[-1]' \
--region us-east-1 \
--output json
…让我有机会尝试错误查找
data "aws_ami" "centos" {
most_recent = true
owners = ["aws-marketplace"]
filter {
name = "virtualization-type"
values = ["hvm"]
}
filter {
name = "architecture"
values = ["x86_64"]
}
filter {
name = "image-type"
values = ["machine"]
}
filter {
name = "name"
values = ["CentOS Linux 7*"]
}
}
resource "aws_launch_configuration" "launch_configuration" {
name_prefix = "${var.name}-"
image_id = "${data.aws_ami.centos.image_id}"
instance_type = "t2.nano"
iam_instance_profile = "${aws_iam_instance_profile.instance_profile.name}"
security_groups = ["${aws_security_group.lc_security_group.id}"]
user_data = "${data.template_file.user_data.rendered}"
lifecycle {
create_before_destroy = true
}
}
登记
或
AWS一直在改变“AWS市场”用户界面。现在(2020)我们在AWS市场本身的“配置此软件”页面中获得ami id
步骤:
并找到图像。点击图片李>
在右上角,单击“继续订阅”
在下一个窗口中,单击“继续配置”
在下一个窗口中,找到位于的Ami ID。我们可以更改软件版本以获得不同的ami ID
它是否在市场中,在“管理您的软件订阅”下?它似乎也没有显示在那里-除了显示我正在运行的实例,这将显示ami id。但我想在运行之前找到它。这是一个非常令人沮丧的问题-我不敢相信在启动实例之前无法在AWS网站上直接查看ami id。我知道你是在谷歌搜索特定于地形的问题后来到这里的,请参阅答案说明我最初访问wiki页面获取AMI ID,但它们已经过时,我的cloudFormation模板错误提到“未授权图像”。我必须使用AWS CLI和这里的查询来获取最新的7.x映像ID值。这不是一个简单的解决方案,但您也可以在创建VM时在ui中搜索。通过左边的“centos和免费”复选框进行筛选(我看到19个选项的更新日期)。谢谢,这让我很难过。天哪,我找到了我想用Ansible()制作的marketplace centos图像。除了AMI,您可能需要的所有信息。2小时寻找合适的AMI是一个笑话亚马逊!我仍然没有找到合适的ami号码。令人沮丧。新产品代码:47k9ia2igxpcce2bzo8u3kj03(centos 8)和CVUGZIKNVMXGQNA9NOIBKNSY(centos 7)