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

时间:2015-06-10 20:42:02

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

我在Google云端平台上已经配置了现有的虚拟机。它是在没有startup script的情况下创建的,但我现在想添加一个。

如何从console.developers.google.com网络界面添加它?

3 个答案:

答案 0 :(得分:25)

您可以通过创建新的自定义元数据字段将启动脚本添加到已创建的VM。请按照以下步骤操作:

  1. 访问VM的配置页面:导航到https://console.developers.google.com单击您的项目。转到计算 - >计算引擎 - > VM实例。单击VM的名称。
  2. 向下滚动到自定义元数据。单击“编辑”。
  3. 创建新的元数据字段。将密钥设置为startup-script
  4. 将启动脚本粘贴到值字段中。不要忘记shebang。这是一个有效脚本的示例。

    #! /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
    
  5. 重新启动您的VM。享受你真棒启动脚本的收益。

答案 1 :(得分:0)

感谢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”,否则可能会导致网络尚未启动而无法正常工作。

答案 2 :(得分:0)

以上答案根据问题是正确的。

但是我一直想通过gcloud命令在GCP VM的启动元数据中添加多个.sh脚本。

以下为我工作(也许会帮助某人)

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

文档链接-https://cloud.google.com/sdk/gcloud/reference/compute/instances/add-metadata