如何让gcloud使用特定的配置目录?

8

我希望gcloud使用我知道路径的特定.config目录。有没有办法强制它使用这个目录?

4个回答

19

你可以设置环境变量

CLOUDSDK_CONFIG=/path/to/dir

覆盖默认值~/.config/gcloud的设置。


1
注意:即使在当前 shell 中运行 gcloud,您也需要导出此变量才能生效。 - Alex Jansen

2

虽然我不确定是否使用不同的.config目录,但您可以使用--configuration标志。

您可以查看gcloud --helpgcloud topic configurations获取更多信息。


2
首先,我应该提到我赞同Zachary和Kevin的答案。
但是,如果您坚持使用特定的.config文件(在Linux上实际上是一个目录),或者在多个这样的文件/目录之间进行切换,一种方法是将它们临时复制或符号链接到gcloud期望它们的位置。至少在Linux上,这将是~/.config/gcloud目录。
就我个人而言,在这种情况下,我更喜欢符号链接,这对我有效:
/home/username/.config> rm -f gcloud; ln -s gcloud.v1 gcloud
/home/username/.config> ls -l gcloud
lrwxrwxrwx 1 username at 9 Jan 19 09:19 gcloud -> gcloud.v1
/home/username/.config> gcloud auth list

No credentialed accounts.

To login, run:
  $ gcloud auth login `ACCOUNT`

/home/username/.config> rm -f gcloud ; ln -s gcloud.v2 gcloud
/home/username/.config> ls -l gcloud
lrwxrwxrwx 1 username at 9 Jan 19 09:19 gcloud -> gcloud.v2
/home/username/.config> gcloud auth list
   Credentialed Accounts
ACTIVE  ACCOUNT
*       username@gmail.com

To set the active account, run:
    $ gcloud config set account `ACCOUNT`

/home/username/.config> 

0

我遇到了这个问题多年,一直在考虑编写一个伟大的rubygem来解决它,然后想到这可能是一个不错的妥协。

  1. 创建一个名为contextual-gcloud的简单脚本。注意\gcloud,这对于未来的别名非常重要。
$ cat > contextual-gcloud 
#!/bin/bash

if [ -d .gcloudconfig/ ]; then
    echo "[$0] .gcloudconfig/ directory detected: using that dir for configs instead of default."
    CLOUDSDK_CONFIG=./.gcloudconfig/ \gcloud "$@"
else
    \gcloud "$@"
fi
  • 将以下内容添加到您的.bashrc文件中,并重新加载/启动新的bash。这将修复自动补全问题。

    alias gcloud=contextual-gcloud

  • 就是这样!如果您有一个以这种方式命名的目录,系统将使用该目录,这意味着您可以将配置加载到源代码控制中等等。只需记住将日志和私人信息(密钥、证书等)添加到git ignore中即可。

  • 注意:通过别名解决了自动补全问题;)

    代码:https://github.com/palladius/sakura/blob/master/bin/contextual-gcloud


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接