現在、VMで何かを実行する場合は、次のようにファイルをコピーします。
gcloud compute --project <project_id> copy-files --zone <zone_name> /home/roman/source/dir roman@<vm_name>:/some/path
次に、次のように手動でSSHで接続する必要があります。
gcloud compute --project <project_id> ssh --zone <zone_name> <vm_name>
そして、いくつかのコマンドを実行します:
cd /some/path
python example.py
手順2と3を組み合わせて、リモートでコマンドを実行するにはどうすればよいですか?
注:gcloudまたはpython apiを使用します。Fabricのようなサードパーティのパッケージは使用しません。
試してください:
$ gcloud compute ssh --zone ZONE INSTANCE -- 'cd /tmp && python some.py'
gcloud compute ssh --help
から:
[-- IMPLEMENTATION-ARGS ...]
Flags and positionals passed to the underlying ssh implementation.
The '--' argument must be specified between gcloud specific args on the
left and IMPLEMENTATION-ARGS on the right. Example:
$ gcloud compute ssh example-instance --zone us-central1-a -- -vvv \
-L 80:%INSTANCE%:80
1週間前に着陸したgcloudの更新は、「-」の後にsshコマンドを渡すことをブロックし、効果的に--command
オプション。この場合、次を使用します。
gcloud compute ssh --zone ZONE INSTANCE --command 'cd /tmp && python some.py'
。
少し接線でやりました。 gcloud compute
の代わりに通常のsshクライアントを使用:
ssh -i ~/.ssh/google_compute_engine roman@<vm_IP> 'python /some/path/example.py'
Gcloud sshキーは~/.ssh/google_compute_engine
にあり、使用します。また、名前の代わりにインスタンスの外部IPアドレスが必要です。