如何从Google Cloud Compute中删除所有区域的实例组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从Google Cloud Compute中删除所有区域的实例组相关的知识,希望对你有一定的参考价值。
我需要创建一个从Google Cloud Platform中删除实例组的脚本。该组可以位于任何区域。当我运行命令时:
gcloud compute instance-groups managed delete [instance-group-name]
(没有区域或区域)我被提示选择区域或区域。对这样的脚本有任何帮助吗?
放置--zone标志并在命令中指定它显然会阻止对区域的提示。但是,如果每个实例组的区域不同并且您希望自动执行此过程,则可以向脚本中添加一些命令,列出实例组(输出将包括区域),然后过滤输出以创建变量包含区域信息。然后可以在gcloud compute instance-groups managed delete
命令中使用此变量。
例如,要隔离要删除的实例组的区域,可以尝试这样的操作。
gcloud compute instance-groups list | grep INSTANCE_GROUP_NAME | awk '{print $2;}'
上面的命令首先使用grep来过滤一行信息,其中包含您要删除的实例组的详细信息,因此在应用awk之前,信息如下所示:
test-instance-group us-west1-c zone default Yes 1
awk '{print $2;}'
过滤器打印出第二个非空白子字符串,它将是区域,因此输出以下内容:
us-west1-c
因此,就您的脚本而言,在执行删除实例组的命令之前,您需要为该实例组区域设置一个变量。总而言之,以下是您的脚本的外观:
#!/bin/bash
### retrieve the zone information of the instance group and store it in a variable.
zonevar="$(gcloud compute instance-groups list | grep INSTANCE_GROUP_NAME | awk '{print $2;}')"
### use the variable in the gcloud command to delete the instance group.
gcloud compute instance-groups managed delete INSTANCE_GROUP_NAME --zone=$zonevar
如果您想应用区域信息而不是区域信息,则可以应用相同的逻辑。
您可以利用--format来概括脚本并避免切片和切片管道。特定于命令行的格式还可以证明您不会违反CLI合同中的表格格式更改。此脚本还处理区域/区域位置。
#!/bin/bash
typeset -A locationsof
function getlocations {
set -- $(gcloud compute instance-groups list
--format="value(name,location(),location_scope())")
while (( $# >= 3 ))
do
locationsof[$1]+=" --$3=$2"
shift 3
done
}
getlocations
for name
do
if [[ $name == -n || $name == --show ]]; then
show=echo
continue
fi
locations=${locationsof[$name]}
if [[ ! $locations ]]; then
echo "$name: unknown instance group" >&2
continue
fi
for location in $locations
do
$show gcloud compute instance-groups managed delete $name $location
done
done
在真正删除任何内容之前,使用-n或--show测试脚本。使用--verbosity = info运行任何list命令以查看默认输出格式。这就是 - 格式咒语的衍生方式。
以上是关于如何从Google Cloud Compute中删除所有区域的实例组的主要内容,如果未能解决你的问题,请参考以下文章
从Google Cloud Compute上的Windows Server映射Windows上的共享文件夹
如何使用 Google Cloud Compute Engine 为 Node.JS 应用程序配置端口转发
如何在 Google Cloud Compute Engine VM Instance (Bitnami) 中查找 mongodb 连接字符串
如何解决 Google Cloud [Compute Engine] 中的持续非活动计费状态并恢复暂停的 VM 实例?