gcloud auth 抛出 PyOpenSSL 不可用
gcloud auth throws PyOpenSSL is not available
我一直在努力让 gcloud 在 Travis 上达到可用状态,但我似乎无法通过 gcloud auth activate-service-account
点。
每当它 运行s 我只是得到以下错误:
ERROR: (gcloud.auth.activate-service-account) PyOpenSSL is not available.
See https://developers.google.com/cloud/sdk/crypto for details.
我已经尝试使用 export CLOUDSDK_PYTHON_SITEPACKAGES=1
设置的 apt-get 和 pip 安装,但似乎没有任何效果。
有没有人有任何想法或替代方案?
这是 Travis 版本 Ubuntu 14.04.
更新
如果我 运行 来自 travis 文档的命令,我会收到以下错误:
usage: gcloud auth activate-service-account ACCOUNT --key-file KEY_FILE [optional flags]
ERROR: (gcloud.auth.activate-service-account) too few arguments
这让我觉得我必须有一个 ACCOUNT
参数,但是在 运行 使用未加密的服务帐户密钥在本地执行命令后,我知道不需要它(除非有什么东西改变了)。
我唯一能想到的另一件事是文件没有被正确解密或者命令本身在 Travis 中不满意:
- gcloud auth activate-service-account --key-file client-secret.json
更新 2
刚刚转储了一大堆日志来了解发生了什么。 (大声喊叫@Vilas 寻求他的帮助)
看起来 gcloud
已经安装在 VM 上用于节点,但它是一个超级旧版本。
$ which gcloud
/usr/bin/gcloud
$ gcloud --version
Google Cloud SDK 0.9.37
bq 2.0.18
bq-nix 2.0.18
compute 2014.11.25
core 2014.11.25
core-nix 2014.11.25
dns 2014.11.25
gcutil 1.16.5
gcutil-nix 1.16.5
gsutil 4.6
gsutil-nix 4.6
sql 2014.11.25
下一个问题是如何获取找到正确 gcloud 的路径?
我已经通过 运行 执行此命令确认下载的 SDK 安装到 ${HOME}/google-cloud-sdk/bin。
$ ls -l ${HOME}/google-cloud-sdk/bin
total 24
drwxr-xr-x 2 travis travis 4096 Apr 27 21:44 bootstrapping
-rwxr-xr-x 1 travis travis 3107 Mar 28 14:53 bq
-rwxr-xr-x 1 travis travis 912 Apr 21 18:56 dev_appserver.py
-rwxr-xr-x 1 travis travis 3097 Mar 28 14:53 gcloud
-rwxr-xr-x 1 travis travis 3144 Mar 28 14:53 git-credential-gcloud.sh
-rwxr-xr-x 1 travis travis 3143 Mar 28 14:53 gsutil
我终于找到了解决办法。本质上,Travis 安装了一个超旧版本的 gcloud SDK,它负责下载的 SDK。
帮助诊断的步骤
在您的 .travis.yml
文件中添加:
env:
global:
# Ensure the downloaded SDK is first on the PATH
- PATH=${HOME}/google-cloud-sdk/bin:$PATH
# Ensure the install happens without prompts
- CLOUDSDK_CORE_DISABLE_PROMPTS=1
然后在您的安装步骤中添加以下内容:
install:
# Make sure SDK is downloaded - cache once it's working
# NOTE: Note sure how to update the SDK if it's cached
- curl https://sdk.cloud.google.com | bash;
# List the SDK contents to ensure it's downloaded
- ls -l ${HOME}/google-cloud-sdk/bin
# Ensure the correct gcloud is being used
- which gcloud
# Print the gcloud version and make sure it's something
# Reasonably up to date compared with:
# https://cloud.google.com/sdk/downloads#versioned
- gcloud --version
我一直在努力让 gcloud 在 Travis 上达到可用状态,但我似乎无法通过 gcloud auth activate-service-account
点。
每当它 运行s 我只是得到以下错误:
ERROR: (gcloud.auth.activate-service-account) PyOpenSSL is not available.
See https://developers.google.com/cloud/sdk/crypto for details.
我已经尝试使用 export CLOUDSDK_PYTHON_SITEPACKAGES=1
设置的 apt-get 和 pip 安装,但似乎没有任何效果。
有没有人有任何想法或替代方案?
这是 Travis 版本 Ubuntu 14.04.
更新
如果我 运行 来自 travis 文档的命令,我会收到以下错误:
usage: gcloud auth activate-service-account ACCOUNT --key-file KEY_FILE [optional flags]
ERROR: (gcloud.auth.activate-service-account) too few arguments
这让我觉得我必须有一个 ACCOUNT
参数,但是在 运行 使用未加密的服务帐户密钥在本地执行命令后,我知道不需要它(除非有什么东西改变了)。
我唯一能想到的另一件事是文件没有被正确解密或者命令本身在 Travis 中不满意:
- gcloud auth activate-service-account --key-file client-secret.json
更新 2
刚刚转储了一大堆日志来了解发生了什么。 (大声喊叫@Vilas 寻求他的帮助)
看起来 gcloud
已经安装在 VM 上用于节点,但它是一个超级旧版本。
$ which gcloud
/usr/bin/gcloud
$ gcloud --version
Google Cloud SDK 0.9.37
bq 2.0.18
bq-nix 2.0.18
compute 2014.11.25
core 2014.11.25
core-nix 2014.11.25
dns 2014.11.25
gcutil 1.16.5
gcutil-nix 1.16.5
gsutil 4.6
gsutil-nix 4.6
sql 2014.11.25
下一个问题是如何获取找到正确 gcloud 的路径?
我已经通过 运行 执行此命令确认下载的 SDK 安装到 ${HOME}/google-cloud-sdk/bin。
$ ls -l ${HOME}/google-cloud-sdk/bin
total 24
drwxr-xr-x 2 travis travis 4096 Apr 27 21:44 bootstrapping
-rwxr-xr-x 1 travis travis 3107 Mar 28 14:53 bq
-rwxr-xr-x 1 travis travis 912 Apr 21 18:56 dev_appserver.py
-rwxr-xr-x 1 travis travis 3097 Mar 28 14:53 gcloud
-rwxr-xr-x 1 travis travis 3144 Mar 28 14:53 git-credential-gcloud.sh
-rwxr-xr-x 1 travis travis 3143 Mar 28 14:53 gsutil
我终于找到了解决办法。本质上,Travis 安装了一个超旧版本的 gcloud SDK,它负责下载的 SDK。
帮助诊断的步骤
在您的
.travis.yml
文件中添加:env: global: # Ensure the downloaded SDK is first on the PATH - PATH=${HOME}/google-cloud-sdk/bin:$PATH # Ensure the install happens without prompts - CLOUDSDK_CORE_DISABLE_PROMPTS=1
然后在您的安装步骤中添加以下内容:
install: # Make sure SDK is downloaded - cache once it's working # NOTE: Note sure how to update the SDK if it's cached - curl https://sdk.cloud.google.com | bash; # List the SDK contents to ensure it's downloaded - ls -l ${HOME}/google-cloud-sdk/bin # Ensure the correct gcloud is being used - which gcloud # Print the gcloud version and make sure it's something # Reasonably up to date compared with: # https://cloud.google.com/sdk/downloads#versioned - gcloud --version