在谷歌云中,我们会在特定时间后将自定义图像标记为弃用。我们如何获取使用弃用图像的虚拟机实例的报告?
谢谢
答案1
要查看 GCE 中所有可用的弃用镜像,请参阅Debian 的文档使用以下命令:
gcloud compute images list --project=name-of-your-project --no-standard-images --show-deprecated
然后使用查看源图像
gcloud compute disk list
使用带有 --format 标志的 disk describe 命令来过滤输出。
gcloud compute disks describe disk_name --zone zone_1 --format='get(sourceImage)'
创建一个脚本来检查虚拟机使用的所有磁盘的所有弃用映像可能会有所帮助
for project in $(gcloud projects list --format "value(project_id)");
do if [ $(gcloud services list --filter 'config.name="compute.googleapis.com"' --project $project --format 'value(name)' ) ];
then for instance in $(gcloud compute instances list --format "value(selfLink)" --project $project);
do for sources in $(gcloud compute instances describe $instance --project $project --format "value(disks.source)" );
do for source in $(echo $sources | tr \; \\n);
do sourceimage=$(gcloud compute disks describe $source --project $project --format='get(sourceImage)' );
if [ ! -z $sourceimage ];
then state=$(gcloud compute images describe $sourceimage --project $project --format "value(deprecated.state)" 2>/dev/null);
if [ ! -z $state ];
then if [ $state == DEPRECATED ];
then echo $instance;
fi;
fi;
fi;
done;
done;
done;
fi;
done | sort | uniq
请记住,这将需要一些时间,因为循环必须逐个项目地进行。