首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于大容量元数据更新的gcloud命令

用于大容量元数据更新的gcloud命令
EN

Stack Overflow用户
提问于 2022-07-26 18:18:39
回答 2查看 75关注 0票数 0

我正在尝试创建一个gcloud命令,它可以对计算引擎实例进行大量元数据更新。

通常情况下,我只需将gcloud compute instances list输送到xargs gcloud compute instances add-metadata。但是,由于某些难以解释的原因,add-metadata需要一个实例名和一个区域,尽管计算实例名似乎是全局唯一的,但这一做法受到了阻碍。因此,现在我不得不尝试将这两部分数据(包括名称和区域)传送到metadata命令。如果我不提供两者,我就得到:

代码语言:javascript
复制
ERROR: (gcloud.compute.instances.add-metadata) Underspecified resource [worker-1]. Specify the [--zone] flag.

我已经准备好放弃bash/xargs咒语,转而使用python了,但我想我应该先看看这里。

我有这样的命令:

代码语言:javascript
复制
gcloud compute instances list \
        --filter="name~'worker' AND zone~'us-central1'" \
        --format 'value(name,zone)'

它返回的内容如下:

代码语言:javascript
复制
worker-1    us-central1-c
worker-2    us-central1-c
worker-3    us-central1-c
worker-4    us-central1-c

然后,我需要将这些输入到如下命令中:

代码语言:javascript
复制
gcloud compute instances add-metadata --zone=[zone goes here] --metadata myvalue=true [instance name goes here]

但是仅仅使用xargs就证明了这很棘手/很烦人。是否有更好或更简单的方法来完成我正在尝试的事情?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-07-26 19:05:46

将其传输到同时读取序列:

代码语言:javascript
复制
gcloud compute instances list \
       --filter="name~'worker' AND zone~'us-central1'" \
       --format 'value(name,zone)' | \
while read instance zone; do
    gcloud compute instances add-metadata \
    --zone=$zone --metadata myvalue=true $instance
done
票数 5
EN

Stack Overflow用户

发布于 2022-07-26 19:57:04

您可以在“中间”包装一个sh,以帮助处理位置参数。在您的示例中,您可以在CLI下面运行,注意到它将echo它将要运行的gcloud命令,然后,一旦满意地使用生成的命令集,要么在那里删除echo,要么运行整个命令|sh -x

代码语言:javascript
复制
gcloud compute instances list \
        --filter="name~'worker' AND zone~'us-central1'" \
        --format 'value(name,zone)' |\
xargs -n2 sh -c \
'echo gcloud compute instances add-metadata --zone="$2" --metadata myvalue=true "$1"' --

这里的诀窍是这样的CLI安排:xargs -n2 sh -c '... $1 ... $2' --

  • -n2xargs作为一个迷你脚本

在two

  • sh -c '... $1 ... $2' --组中通过args
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73128063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档