如何使用AWS CLI找出在EC2實例上運行的操作系統。如何使用AWS CLI找到EC2實例的操作系統
ec2 describe-instance
命令吐出了大量的信息,但沒有任何指示操作系統。
我也試過ec2 describe-images
在一個特定的圖像。再一次,似乎沒有任何OS的跡象。
幫助..?
如何使用AWS CLI找出在EC2實例上運行的操作系統。如何使用AWS CLI找到EC2實例的操作系統
ec2 describe-instance
命令吐出了大量的信息,但沒有任何指示操作系統。
我也試過ec2 describe-images
在一個特定的圖像。再一次,似乎沒有任何OS的跡象。
幫助..?
您無法從AWS cli查詢實例的特定操作系統,但可以查詢該實例基於的AMI。此外,您無法獲得「操作系統」屬性,但可以獲得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
。
謝謝。是的,當我準備和AMI中的描述一起使用時,我的組織中只有一些用戶正確地命名它們並沒有幫助。 至於腳本/ etc/issue,我實際上需要OS信息來自動連接到幾個EC2實例,一些運行Amazon Linux(默認ssh用戶:ec2-user),一些運行RHEL(默認ssh用戶:root) 。 – ivarrian
這裏有一個快速的方法來列出平臺領域,這至少是Windows和Linux之間的區別:
aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId,Platform]' --output text
i-78b4ef47 windows
i-b8ae3386 windows
i-9d3611a2 None
i-1c57c651 windows
i-a241ec91 None
i-7d26b630 None
*無*表示什麼? – Jeff
'無'是相當於NULL的Python。在Platform字段中,只有Windows實例返回一個值('windows')。所有其他人都不會返回一個值,因此「無」。 (我不知道爲什麼會出現這種情況,但那是行爲。) –
我得到你必須指定區域錯誤。 –
試試這個命令:
aws ec2 describe-images --image-ids $(aws ec2 describe-instances --instance-ids i-xxxxxxxxxxxxx --query 'Reservations[0].Instances[0].ImageId' --output text) --query 'Images[0].Name'
$()部分得到利用INSTANCEID圖像標識。
這是問題的正確答案。 –
簡而言之,不,你不能使用AWS-CLI來做到這一點。 – slayedbylucifer
@slayedbylucifer:夠公平的。我想我最好開始在AMIs上執行命名約定 – ivarrian