Google compute engine 如何从开发人员控制台向现有VM添加启动脚本?

Google compute engine 如何从开发人员控制台向现有VM添加启动脚本?,google-compute-engine,google-cloud-platform,Google Compute Engine,Google Cloud Platform,我在谷歌云平台上有一个已经配置好的虚拟机。它创建时没有一个,但我现在想添加一个 如何从console.developers.google.com web界面添加它 通过创建新的自定义元数据字段,可以将启动脚本添加到已创建的VM中。遵循以下步骤: 进入虚拟机的配置页面:导航以单击您的项目。转到计算->计算引擎->虚拟机实例。单击虚拟机的名称 向下滚动到自定义元数据。单击编辑 创建一个新的元数据字段。将键设置为启动脚本 将启动脚本粘贴到值字段中。别忘了射棒。下面是一个有效脚本的示例 #! /bin/

我在谷歌云平台上有一个已经配置好的虚拟机。它创建时没有一个,但我现在想添加一个


如何从console.developers.google.com web界面添加它

通过创建新的自定义元数据字段,可以将启动脚本添加到已创建的VM中。遵循以下步骤:

  • 进入虚拟机的配置页面:导航以单击您的项目。转到计算->计算引擎->虚拟机实例。单击虚拟机的名称
  • 向下滚动到自定义元数据。单击编辑
  • 创建一个新的元数据字段。将键设置为启动脚本
  • 将启动脚本粘贴到值字段中。别忘了射棒。下面是一个有效脚本的示例

    #! /bin/bash
    apt-get update
    apt-get install -y apache2
    cat <<EOF > /var/www/index.html
    <html><body><h1>Hello World</h1>
    <p>This page was created from a simple startup script!</p>
    </body></html>
    EOF
    
    #/bin/bash
    更新源
    apt get安装-y apache2
    
    cat多亏了mimming的回答,我一直在寻找这个解决我关于多IP的问题的方法,他的回答帮助我开始,并在重新启动实例时添加下面的启动脚本,最终解决了我的问题

    #! /bin/bash
    sleep 60
    /usr/sbin/ip route add default via 10.8.8.1 dev eth1 table rt1
    /usr/sbin/ip rule add from 10.8.8.3/32 table rt1
    /usr/sbin/ip rule add to 10.8.8.3/32 table rt1
    

    请记住添加“sleep 60”,否则它可能无法工作,导致网络尚未启动。

    根据问题,上述答案是正确的

    但我希望通过gcloud命令在GCP VM的启动元数据中添加多个.sh脚本

    下面是我的作品(可能会帮助别人)


    Docs link-

    谷歌官方文档的链接正是为了这个问题:由于一个bug而不能在Ubuntu 16.04上工作?太棒了,谢谢你的工作,但不是直接脚本,而是脚本路径,如果你能测试并确认它是完美的,但是工作。@PascalGula上述解决方案适用于GCP中的Ubuntu 16.04。对于那些对方向固有的模糊性有反感的人,包括试图描述在UI中导航的人,您可以使用
    gcloud计算实例添加元数据
    To add multiple key-value pairs at once, separate them with commas:
    
    $ gcloud compute instances add-metadata test-instance \
          --metadata=important-data="2 plus 2 equals\
       4",unimportant-data=zero