【问题标题】:Run .sh script using Google Cloud SDK shell使用 Google Cloud SDK shell 运行 .sh 脚本
【发布时间】:2020-03-12 18:41:19
【问题描述】:

我正在尝试自动将代码部署到我的 3 个 GCE Linux 虚拟机。我读了这篇文章Scripting with gcloud: a beginner’s guide to automating GCP tasks,它展示了如何制作脚本。现在我假设这意味着将代码保存为 .sh 文件(它甚至在顶部有一个 shebang),现在我该如何运行它。我是否在 Google Cloud SDK Shell 中键入脚本文件名?我试过了,它似乎不起作用。有人能帮我吗?我会很感激的。

这是我尝试使用脚本文件的谷歌云 shell 的图像。

【问题讨论】:

  • 我的脚本是这样的:#!/bin/bash gcloud compute --project "myproject" scp C:\Users\******\Desktop\publish.zip --zone "us-east1-c" "****":publish.zip。我把它放在一个文件myscript.sh 中,与谷歌云外壳在同一个文件夹中。然后,我在 cloud shell 中键入文件名。它会打开一个空白的 cmd 窗口,该窗口会立即关闭。但脚本不起作用。它不会将 publish.zip 文件复制到我的虚拟机。直接在同一个 shell 中运行这个 cmd 确实有效
  • 我编辑了我的问题,约翰
  • 我说的是你下载到电脑里的云SDK外壳。它被称为谷歌云 SDK 外壳。但它是在我的计算机上使用的,它使用 Windows 路径。
  • 请记住,在 Windows 上您不能天真地运行 .sh 脚本(也许使用 Windows Power Shell?),您不妨使用 .bat 文件。另外,我认为您对 gcloud 是什么感到困惑,如果您想自动化部署,您还必须考虑另一边会发生什么。

标签: google-cloud-platform


【解决方案1】:

您可以在 Linux、macOS 和 Windows 等各种操作系统上install Google Cloud SDK。之后,您将能够使用gcloudgsutilbq 等相同的命令。同时,脚本编写依赖于命令行解释器:您可以在 Linux 和 macOS 上使用 bash,但对于 Windows,您应该使用 cmdPowerShell。您可以运行 article 提供的示例,您已经提到,以及在文档 Scripting gcloud CLI commandsbash 在 Linux 和 macOS 上提供的示例,因此您收到的错误消息是预期的。你不能天真地在 Windows 上运行 .sh 脚本,正如 @Pievis 在评论部分提到的那样。

作为一种可能的解决方法,您可以install Windows Subsystem for Linux (WSL) for Windows 10(通常您可以choose between WSL2 and WSL1,但这取决于您的 Windows 10 的构建版本)来获得一些interoperability between Windows and Linux

如果您需要将文件传输到您的 VM 实例,请遵循文档Transferring files to VMs

如果您对使用 GCP 实现自动化感兴趣,请查看文档 Infrastructure as code 以“自动执行可重复的任务,例如配置、配置和部署”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-29
    • 1970-01-01
    • 2020-10-09
    • 1970-01-01
    • 2018-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多