应用程序引擎的Jenkins推送部署设置失败

时间:2015-11-23 08:08:49

标签: google-app-engine jenkins gcloud

我从bitnami-jenkins图像创建了一个新的计算引擎实例,以自动部署我的app-engine应用程序。我使用以下命令执行此操作:

gcloud compute instances create deployer
--project myapp --image-project bitnami-launchpad
--image bitnami-jenkins-1-638-1-linux-debian-7-x86-64
--zone us-central1-a --machine-type g1-small 
--metadata "bitnami-base-password=mypassword,bitnami-default-user=user,bitnami-key=jenkins,bitnami-name=Jenkins,bitnami-url=//bitnami.com/stack/jenkins,bitnami-description=Jenkins,startup-script-url=https://dl.google.com/dl/jenkins/p2dsetup/setup-script.sh" 
--scopes "https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/devstorage.full_control,https://www.googleapis.com/auth/projecthosting,https://www.googleapis.com/auth/appengine.admin" 
--tags "jenkins"

创建机器后,我创建了一个部署代码的作业,如下所述:

  

https://cloud.google.com/tools/cloud-repositories/docs/push-to-deploy

但是,我的作业失败并出现以下错误:

ERROR: Error Response: [403] Request had insufficient authentication scopes.
ERROR: (gcloud.preview.app.deploy) Could not retrieve the default Google Cloud Storage bucket for [myapp]. Please try again or use the [bucket] argument.

还有其他人遇到过这个吗?我有另一台jenkins机器,上面有一个旧版本的gcloud。它从未抛出任何与云存储桶相关的错误。所以我有一种预感,它与更新版本的gcloud有关。

请帮忙。感谢。

编辑:这是带有--verbosity debug的gcloud命令的输出。 gcloud output

2 个答案:

答案 0 :(得分:4)

当我尝试使用最新版本的Cloud SDK(0.9.88)重现此内容时,收到以下错误消息:

ERROR: (gcloud.preview.app.deploy) Required scopes ['https://www.googleapis.com/auth/cloud-platform'] missing from ['https://www.googleapis.com/auth/appengine.admin', 'https://www.googleapis.com/auth/devstorage.full_control', 'https://www.googleapis.com/auth/projecthosting', 'https://www.googleapis.com/auth/userinfo.email']. This VM instance probably needs to be recreated with the missing scopes.

解决方案是像以前一样重新创建VM,但将范围https://www.googleapis.com/auth/cloud-platform添加<{strong>}到--scopes标志中提供的列表。

我会确保修复文档以反映这一点。 编辑:文档现已修复。

答案 1 :(得分:1)

这个答案具有误导性;它错误地识别了真正的问题。我将它留在这里作为后代。

这似乎是Google Compute Engine服务帐户与Google云端存储分区之间互动的一个小打击。

要解决此问题,请create a Cloud Storage bucket Jenkins VM上的service account可以读取/写入,或更改云存储桶staging.<appname>.appspot.com上的权限。如果您不熟悉Google Developer's Console(执行此操作的命令行工具),最简单的方法是gsutil

  

所以我预感它与更新版本的gcloud有关。

是的,确实如此。新版本的gcloud使用不同的部署机制(速度更快)。