usar servidor configurar conexion como comando ssh google-compute-engine gcloud

ssh - servidor - gcloud compute ejecutar comando de forma remota



openssh windows 7 (3)

Actualmente, si quiero ejecutar algo en una VM, copio archivos de esta manera:

gcloud compute --project <project_id> copy-files --zone <zone_name> /home/roman/source/dir roman@<vm_name>:/some/path

Entonces necesito SSH en esto manualmente así:

gcloud compute --project <project_id> ssh --zone <zone_name> <vm_name>

Y luego ve y ejecuta un comando:

cd /some/path python example.py

¿Cómo combino los pasos 2 y 3 juntos y ejecuto un comando de forma remota?

Nota: Quiero usar gcloud o la api de python. No quiero usar paquetes de terceros como Fabric.


Lo hizo con un poco de tangente; utilizando el cliente ssh normal en lugar de gcloud compute :

ssh -i ~/.ssh/google_compute_engine roman@<vm_IP> ''python /some/path/example.py''

La clave gcloud ssh se encuentra en ~/.ssh/google_compute_engine , que usa. También requiere la dirección IP externa de la instancia en lugar de su nombre.


Tratar:

$ gcloud compute ssh --zone ZONE INSTANCE -- ''cd /tmp && python some.py''

Desde 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


Una actualización de gcloud que aterrizó hace una semana bloqueó el paso de los comandos ssh después de ''-'' y efectivamente --command uso de la opción --command para esto. En este caso use:

gcloud compute ssh --zone ZONE INSTANCE --command ''cd /tmp && python some.py'' .