使用 SDK 查找 EC2 AWS 的 OS 名称
Find the OS name for EC2 AWS Using SDK
我正在尝试使用 AWS SDK 优化 OS 名称,我尝试使用描述实例:
ec2.describe_instances();
我能够收集所有实例,但无法获取 Linux 实例的 OS 名称,任何其他方式获取 Linux 实例的 OS 名称.
您可以显示实例的platform
:
$ aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId, Platform]' --output text
i-0c9c9494b3b83afdc None
i-0ef635853b32f705e windows
i-3da613a2 None
i-5d261c40 None
i-8daa32d2 windows
i-292b91c7 None
如果实例为Windows,则值为windows
,否则为null。
无法获取 OS 名称(例如 Redhat、Suse)-- 为此,您可以检查用于启动实例的 AMI 的名称。
正如@helloV 所说,OS 信息是由 describe instances 命令提供的 而不是 。您可以通过从实例的 AMI 中查询元数据来暂时获取它。
注意:此脚本有问题,可以轻松改进(感谢编辑)
set -f; IFS=$'\n' # split array on newlines
for x in $(IFS=$'\n' aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId,ImageId]' --output text); do instance=$(echo $x | cut -f1); ami=$(echo $x | cut -f2); echo $instance $ami $(aws ec2 describe-images --image-ids $ami --query Images[*].[Name] --output text); done;
set +f; unset IFS # reset separator
如果您使用的是指定基本映像的 AMI,您应该会看到如下内容:
i-abd94ccc ami-a73264ce ubuntu/images/ebs/ubuntu-precise-12.04-amd64-server-20131003
i-ea827c52 ami-abcdefgh Custom Secret Image
i-71ccf280 ami-9eaa1cf6 ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-20140927
i-cb72a300 ami-08ab2f65 k8s-1.3-debian-jessie-amd64-hvm-ebs-2016-06-18
i-2aaed139 ami-e3c3b8f4 ubuntu/images/hvm-ssd/ubuntu-xenial-16.04-amd64-server-20160922
我正在尝试使用 AWS SDK 优化 OS 名称,我尝试使用描述实例:
ec2.describe_instances();
我能够收集所有实例,但无法获取 Linux 实例的 OS 名称,任何其他方式获取 Linux 实例的 OS 名称.
您可以显示实例的platform
:
$ aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId, Platform]' --output text
i-0c9c9494b3b83afdc None
i-0ef635853b32f705e windows
i-3da613a2 None
i-5d261c40 None
i-8daa32d2 windows
i-292b91c7 None
如果实例为Windows,则值为windows
,否则为null。
无法获取 OS 名称(例如 Redhat、Suse)-- 为此,您可以检查用于启动实例的 AMI 的名称。
正如@helloV 所说,OS 信息是由 describe instances 命令提供的 而不是 。您可以通过从实例的 AMI 中查询元数据来暂时获取它。
注意:此脚本有问题,可以轻松改进(感谢编辑)
set -f; IFS=$'\n' # split array on newlines
for x in $(IFS=$'\n' aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId,ImageId]' --output text); do instance=$(echo $x | cut -f1); ami=$(echo $x | cut -f2); echo $instance $ami $(aws ec2 describe-images --image-ids $ami --query Images[*].[Name] --output text); done;
set +f; unset IFS # reset separator
如果您使用的是指定基本映像的 AMI,您应该会看到如下内容:
i-abd94ccc ami-a73264ce ubuntu/images/ebs/ubuntu-precise-12.04-amd64-server-20131003
i-ea827c52 ami-abcdefgh Custom Secret Image
i-71ccf280 ami-9eaa1cf6 ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-20140927
i-cb72a300 ami-08ab2f65 k8s-1.3-debian-jessie-amd64-hvm-ebs-2016-06-18
i-2aaed139 ami-e3c3b8f4 ubuntu/images/hvm-ssd/ubuntu-xenial-16.04-amd64-server-20160922