我通过shell脚本创建了Google Cloud Compute实例,然后通过ssh在该实例上启动了几个命令。
如何确保实例中的操作系统正在运行?
例如:
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 root@"$my_name":/existing_dir/ \
--zone "$my_zone"
据我所知,如果实例未启动,则第二个命令可能会出现连接拒绝的情况。
如何确保实例已启动并准备好接受ssh连接?
gcloud compute instances list instance-name --format json
以获得更稳定的输出格式。您可以使用jq
来解析json输出。(其他稳定的输出格式包括文本和yaml。) - Jeffrey Vaughan$( gcloud compute instances list --format text |sed -rn 's/.*([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}).*/\1/p' )
- chrishmorris