如何在Jenkins管道中使用Google服务帐户进行身份验证

时间:2017-07-27 15:24:38

标签: authentication jenkins jenkins-pipeline credentials gcloud

我想在Jenkins管道中使用gcloud,因此我必须先使用Google服务帐户进行身份验证。我正在使用保存私钥证书的https://wiki.jenkins.io/display/JENKINS/Google+OAuth+Plugin。我坚持将凭证加载到管道中:

withCredentials([[$class: 'MultiBinding', credentialsId: 'my-creds', variable: 'GCSKEY']]) {
    sh "gcloud auth activate-service-account --key-file=${GCSKEY}"
}

我也从文件中尝试过,但没有运气。

withCredentials([file(credentialsId:'my-creds', variable: 'GCSKEY')]) {

日志说:

org.jenkinsci.plugins.credentialsbinding.impl.CredentialNotFoundException: Credentials 'my-creds' is of type 'Google Service Account from private key' ....

3 个答案:

答案 0 :(得分:5)

您需要将您的服务帐户JSON文件作为秘密文件上传。 然后:

withCredentials([file(credentialsId: 'key-sa', variable: 'GC_KEY')]) {
    sh("gcloud auth activate-service-account --key-file=${GC_KEY}")
    sh("gcloud container clusters get-credentials prod --zone northamerica-northeast1-a --project ${project}")
  }

答案 1 :(得分:1)

我无法使用“私钥中的Google服务帐户”工作,但在Jenkins中使用“秘密文件”类型的凭据,并上传了我的Google服务帐户JSON可以使用。

答案 2 :(得分:-3)

附件图片不言自明!如果您不理解,请告诉我!顺便说一句,你要安装上面提到的插件(我假设你已经完成)并导航到Jenkins>配置全局安全性,你可以在那里找到这些选项。

enter image description here