web-dev-qa-db-ja.com

開発者コンソールから既存のVM)にスタートアップスクリプトを追加するにはどうすればよいですか?

Google CloudPlatformに既存の構成済みのVM)があります。これは 起動スクリプト なしで作成されましたが、ここで追加したいと思います。

Console.developers.google.com Webインターフェイスから追加するにはどうすればよいですか?

17
mimming

新しいカスタムメタデータフィールドを作成することにより、作成済みのVM)に起動スクリプトを追加できます。次の手順に従います。

  1. VMの構成ページに移動します。 https://console.developers.google.com に移動します。プロジェクトをクリックします。 [コンピューティング]-> [Compute Engine]-> VMインスタンス)に移動します。VMの名前をクリックします。
  2. [カスタムメタデータ]まで下にスクロールします。 [編集]をクリックします。
  3. 新しいメタデータフィールドを作成します。キーをstartup-scriptに設定します。
  4. 起動スクリプトを値フィールドに貼り付けます。シェバンを忘れないでください。有効なスクリプトの例を次に示します。

    #! /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を再起動します。素晴らしいスタートアップスクリプトの成果をお楽しみください。
33
mimming

Mimmingの回答のおかげで、複数のIPに関する問題を解決するためにこれを探していました。彼の回答は、インスタンスを再起動するときにstartup-scriptの下に追加することで、問題を開始し、最終的に解決するのに役立ちました。

#! /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

「sleep60」を追加することを忘れないでください。そうしないと、ネットワークがまだ開始されていないために機能しない可能性があります。

1
James Hsieh

上記の答えは質問通り正しいです。

しかし、GCPの起動メタデータに複数の.shスクリプトを追加するために探していたのは、gcloudコマンドを介してVM)です。

以下は私のために働きます(多分それは誰かを助けるでしょう)

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

0
Abhinay Gupta