您无法从 AWS cli 查询实例的特定操作系统,但您可以查询该实例所基于的 AMI。此外,您无法获取“OS”属性,但可以获取 AMI 的 Description 或 Name,因此,如果您创建的 AMI 具有有意义的描述,则可以使其正常工作。
$ aws ec2 describe-images --image-ids "ami-xxxxxxxx"
{
"Images": [
{
"VirtualizationType": "paravirtual",
"Name": "amazon-linux-20130509",
"Tags": [
{
"Value": "amazon-linux-20130509",
"Key": "Name"
}
],
"Hypervisor": "xen",
"ImageId": "ami-xxxxxxxx",
"RootDeviceType": "ebs",
"State": "available",
"BlockDeviceMappings": [
{
"DeviceName": "/dev/sda1",
"Ebs": {
"DeleteOnTermination": true,
"SnapshotId": "snap-xxxxxxxx",
"VolumeSize": 100,
"VolumeType": "standard"
}
}
],
"Architecture": "x86_64",
"ImageLocation": "123456789012/amazon-linux-20130509",
"KernelId": "aki-fc37bacc",
"OwnerId": "123456789012",
"RootDeviceName": "/dev/sda1",
"Public": false,
"ImageType": "machine",
"Description": "Amazon Linux"
}
]
}
如果您想获得更详细的信息,您可以随时编写自己的脚本以 ssh 进入机器并在每台机器上运行 cat /etc/issue。