Google-Compute-Engine

使用已棄用的映像查找 Google 虛擬機

  • June 14, 2021

在Google云中,我們將自定義圖像標記為在特定時間後棄用。我們如何獲取使用已棄用映像的 VM 實例的報告?

謝謝

為了查看 GCE 中所有已棄用的圖像,如Debian 的文件中所見,請使用以下命令:

gcloud compute images list --project=name-of-your-project --no-standard-images --show-deprecated

然後查看源圖像

gcloud compute disk list

使用帶有 –format 標誌的磁碟描述命令來過濾輸出。

gcloud compute disks describe disk_name --zone zone_1 --format='get(sourceImage)'

創建一個腳本來檢查所有已棄用的映像以及 VM 使用的所有磁碟可以解決問題

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

請記住,這將需要一些時間,因為循環必須逐個項目進行。

引用自:https://serverfault.com/questions/1064868