You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vagrant provision阶段使用GCP服务账号认证失败问题求助

问题诱因
  1. 核心逻辑错误:gcloud iam service-accounts.keys.create属于GCP资源管理类命令,执行前必须先完成GCP身份认证。你交互式执行时环境已经存在可用认证信息(比如SSH代理了宿主机的gcloud认证、手动提前做过登录),所以可以正常生成密钥;但Vagrant provision阶段是全新的无状态root环境,没有任何预先配置的认证凭证,该命令直接执行失败。
  2. 错误连锁触发:上一步创建密钥失败后,/root/key.json为空白/不存在的无效文件,导致后续gcloud auth activate-service-account读取JSON失败,服务账号激活流程中断,最终拉取GCS资源时没有有效身份凭证,触发401匿名访问错误。
  3. 配置文件警告的原因:gcloud SDK安装完成后,root用户目录下还未初始化~/.config/gcloud相关配置目录,属于次要提示,不影响核心功能,提前创建目录即可消除。
解决方案
  • 步骤1:提前生成服务账号密钥
    在本地宿主机或GCP控制台提前生成对应服务账号的密钥文件key.json,存放到Vagrantfile所在的项目目录,将该文件加入.gitignore避免泄露敏感凭证。
  • 步骤2:修改Vagrantfile注入密钥
    在shell provision之前添加file provisioner,将本地密钥直接传入客户机,不需要在客户机内执行创建密钥的操作:
Vagrant.configure("2") do |config|
  # 其他原有配置
  config.vm.provision "file", source: "./key.json", destination: "/root/key.json"
  config.vm.provision "shell", path: "你的provision脚本路径"
end
  • 步骤3:调整provision shell脚本
    删除原脚本中cd ~ && gcloud iam service-accounts.keys.create key.json --iam-account=example@example.iam.gserviceaccount.com这一行,可额外添加配置目录初始化命令消除警告,调整后的脚本如下:
# Install Google Cloud SDK
## Add URI to package source list
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list

## Install packages needed
sudo apt install -y apt-transport-https ca-certificates gnupg

## Import Google Cloud public key
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -

## Update and Install Google Cloud SDK
sudo apt update && sudo apt install -y google-cloud-sdk

# 初始化gcloud配置目录,消除警告
mkdir -p /root/.config/gcloud/configurations

## Activate service account
gcloud auth activate-service-account \
         example@example.iam.gserviceaccount.com \
         --key-file /root/key.json \
         --project example-project

内容的提问来源于stack exchange,提问作者tipotto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 15:27:03