我從shell腳本創建Google Cloud Compute實例,然後通過ssh在該實例上啓動幾個命令。如何確保Google雲計算實例已啓動並運行
如何確保實例中的操作系統啓動並運行?
例如:
gcloud compute instances create "$my_name" \ --tags "http-server" \ --image container-vm \ --metadata-from-file google-container-manifest="container.yml" \ --zone "$my_zone" \ --machine-type g1-small
那麼我想運行或者 gcloud compute ssh \ "$my_name" --zone "$my_zone" \ --command 'sudo docker stop $(sudo docker ps -q -a)'
或 gcloud compute copy-files \ some.conf [email protected]"$my_name":/existing_dir/ \ --zone "$my_zone"
據我瞭解,第二個命令可能會失敗,連接拒絕,如果該實例沒有啓動。
如何確保實例已啓動並準備好接受ssh連接?
我覺得虛擬機啓動可能需要5秒以上 – 2015-04-06 08:00:42
檢查實例在循環內是否可用。實例引導時間取決於實例引導配置:) – Antxon 2015-04-06 13:31:17
這是一個好方法。需要注意的是,gcloud的默認表格格式旨在方便且易於閱讀,但不是長期穩定的,因此未來可能會添加新字段並打破awk。相反,我建議調用 'gcloud計算實例列表實例名 - 格式json' 以獲得更穩定的輸出格式。你可以用'jq'解析json輸出。 (其他穩定的輸出格式包括文本和yaml。) – 2015-04-06 15:27:35