【问题标题】:Unable to connect cloudbuild to compute engine无法将 cloudbuild 连接到计算引擎
【发布时间】:2022-08-24 06:20:28
【问题描述】:

我想使用 cloudbuild 执行我的计算引擎中的脚本,但不知何故 cloudbuild 无法 ssh 进入我的 vm ,在我的 vm 中启用了“OS LOGIN”,并且也只有内部 ip。

这是我的 cloudbuild.yaml 文件

脚步:

  • 名称:\'gcr.io/cloud-builders/gcloud\' id:更新登台服务器入口点:/bin/sh 参数:
    • \'-c\'
    • | 设置 -x &&
      gcloud compute ssh vm_name --zone=us-central1-c --command=\'/bin/sh /pullscripts/pull.sh\'

我附上我的错误图片

cloudbuild error page 1

cloudbuild error page 2

另外我的问题是,如果启用了“os login”,是否可以使用云 sdk 连接 vm。

  • 请不要将错误消息添加为图像。而是将错误复制为带有相关信息的文本

标签: google-cloud-platform google-compute-engine google-cloud-build google-cloud-sdk


【解决方案1】:

您可能必须将 roles/iap.tunnelResourceAccessor 角色添加到 cloudbuild 服务帐户。请阅读this Google 文档,该文档向您展示了如何处理某个错误代码。

错误代码 4033

您无权访问该实例、该实例不存在或该实例已停止。

【讨论】:

  • 但是我们还没有实现 IAP 服务来连接您的虚拟机,我们使用 vpn 和操作系统登录连接我们的虚拟机。
  • @dantealighieri 我建议重新阅读您正在使用的产品的文档以完全理解这一点,因为 nebulastic 提到的是正确的。 Cloud Build 使用具有公共 IP 的工作人员,并且由于您的 VM 只有一个私有 IP,因此它需要使用 IAP 隧道进行连接,为此,Cloud Build SA 需要使用此隧道的权限roles/iap.tunnelResourceAccessor
  • 另一种方法是使用私人池cloud.google.com/build/docs/private-pools/…
【解决方案2】:

事实上,您可以使用 gcloudbuild 连接任何 vm,只需要一个 docker 配置并上传文件(private_key、脚本等)。我有这个 repo 来解决这个问题:https://github.com/jmbl1685/gcloudbuild-vm-ssh-connect

希望以上对你有帮助

【讨论】:

    猜你喜欢
    • 2014-04-28
    • 2014-09-16
    • 2020-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-10
    • 2017-11-22
    • 1970-01-01
    相关资源
    最近更新 更多