以编程方式获取 EC2 OS

以编程方式获取 EC2 OS

我需要通过 aws-cli 或 aws-sdk 获取此信息(“Amazon Linux”行)。 在此处输入图片描述

我试过了:

aws ec2 describe-images --image-id ami-0b898040803850657 --region us-east-1 --output json

但它并没有直接提供此类信息:

{
    "Images": [
        {
            "Architecture": "x86_64",
            "CreationDate": "2019-06-19T21:59:15.000Z",
            "ImageId": "ami-0b898040803850657",
            "ImageLocation": "amazon/amzn2-ami-hvm-2.0.20190618-x86_64-gp2",
            "ImageType": "machine",
            "Public": true,
            "OwnerId": "137112412989",
            "State": "available",
            "BlockDeviceMappings": [
                {
                    "DeviceName": "/dev/xvda",
                    "Ebs": {
                        "Encrypted": false,
                        "DeleteOnTermination": true,
                        "SnapshotId": "snap-08091107f3acb12b2",
                        "VolumeSize": 8,
                        "VolumeType": "gp2"
                    }
                }
            ],
            "Description": "Amazon Linux 2 AMI 2.0.20190618 x86_64 HVM gp2",
            "EnaSupport": true,
            "Hypervisor": "xen",
            "ImageOwnerAlias": "amazon",
            "Name": "amzn2-ami-hvm-2.0.20190618-x86_64-gp2",
            "RootDeviceName": "/dev/xvda",
            "RootDeviceType": "ebs",
            "SriovNetSupport": "simple",
            "VirtualizationType": "hvm"
        }
    ]
}

当然,可以解析“描述”字段,但不能保证操作系统名称在描述中。

那么,获取 AMI 操作系统的正确方法是什么?另请注意,我需要区分 RHEL、SUSE、Linux 和 Windows。我需要有关操作系统的信息来查找我的实例的定价(以编程方式)。如果有人知道更简单的方法,请随时分享。

答案1

仅从图像列表中,就可以更强大地检查“OwnerId”和“Name”匹配模式。 这就是 AWS 记录如何查找流行 AMI 的方式。

除了编写自己的脚本之外,任何声称支持 AWS 的库存系统都可以按操作系统分组。例如:

  • 当然 AWS 也有自己的系统管理员清单,需额外付费。
  • Ansible 将登录每个实例并识别操作系统。(也适用于不在任何云中的主机以及不知名的操作系统发行版。)

通常很容易区分 Linux 和 Windows,因为云对这些平台的处理方式非常不同。RHEL 与 CentOS 的区别更微妙,两者都是 Linux,两者都是 EL,但其中一个有使用成本。

答案2

不幸的是,我怀疑这是不可能的。这是因为在 AWS-CLI 和 AWS CLI 所基于的 boto3 for python 中,describe images 中的平台选项被设计为如果它不在 Windows 中则返回空白,如果它是 Windows 计算机则返回“windows”。

引用:博托3, 为了命令行界面

相关内容