gpt4 book ai didi

jenkins - 与 Jenkins 一起使用gcloud

转载 作者:行者123 更新时间:2023-12-04 07:36:54 25 4
gpt4 key购买 nike

我一直在尝试编写一个脚本,以定期轮询Google Cloud Storage。当我正常运行它时,它可以很好地工作,但是如果我将它作为Jenkins的构建步骤包括在内,则会产生403 Forbidden错误。这是因为Jenkins用户尚未完成gcloud auth login流程,因此需要复制验证码。如何使用Jenkins做到这一点?

编辑:

我在以下位置尝试了步骤:https://cloud.google.com/storage/docs/authentication#service_accounts并下载了一个类似于以下内容的JSON key :

{"web":{"auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://accounts.google.com/o/oauth2/token","client_email":"....@project.googleusercontent.com","client_x509_cert_url":"https://www.googleapis.com/robot/v1/metadata/x509/....@project.googleusercontent.com","client_id":"....project.googleusercontent.com","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs"}}

这真是奇怪,因为所有链接都指向诸如 bad request, invalid request之类的东西。我一定做错了什么。我运行的命令是:
gcloud auth activate-service-account ...@project.googleusercontent.com --key-file /var/lib/jenkins/....project.googleusercontent.com.json

最佳答案

最好的选择可能是使用“服务帐户”来通过GCS服务对gcloud/gsutil进行身份验证。主要步骤是按照此处的说明使用生成JSON格式的私钥:

https://cloud.google.com/storage/docs/authentication#service_accounts

将该 key 复制到Jenkins用户可以阅读的位置,并在Jenkins用户运行时
gcloud auth activate-service-account ...

(请参阅 https://cloud.google.com/storage/docs/authentication#service_accounts)。请注意,对JSON key 文件的支持是非常新的,您将需要最新的gcloud版本。

从那里,您的Jenkins进程应该能够照常访问GCS。

key 文件应具有以下格式:
{
"private_key_id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"private_key": "-----BEGIN PRIVATE KEY-----\n ... \n-----END PRIVATE KEY-----\n",
"client_email": "...@developer.gserviceaccount.com",
"client_id": "..."
"type": "service_account"
}

关于jenkins - 与 Jenkins 一起使用gcloud,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28356497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com