Как подключиться и получить доступ к виртуальной машине Google Cloud Compute Engine через Python 3.6 - PullRequest
0 голосов
/ 28 марта 2019

Я хочу получить доступ к виртуальной машине Google Cloud Compute Engine с помощью Python 3.6, и мне нужно выполнить обычные действия CLI, например, на удаленном компьютере.

Я могу войти в экземпляр виртуальной машины с помощью команды gcloud, которая создается на странице экземпляра виртуальной машины вручную, и я могу использовать модуль Python googleapiclient.discovery для выполнения некоторых операций, таких как создание экземпляров списка, создание экземпляров и удаление экземпляров. Но я не могу войти в экземпляр виртуальной машины и получить доступ, например, как удаленная машина через Python.

Пожалуйста, направьте меня к правильному API для доступа к экземпляру виртуальной машины.

1 Ответ

0 голосов
/ 28 марта 2019

Я бы использовал paramiko , стороннюю библиотеку Python.

Но сначала вам нужно выполнить простую настройку на стороне GCP, просто вставьте открытый ключ ssh машины, к которой вы хотите подключиться, вот документация и получите внешний IP-адрес Экземпляр Google Compute Engine (GCE), к которому вы хотите подключиться.

Тогда:

import paramiko

#edit the following line please
username, hostname = "YOUR_USERNAME@EXTERNAL_IP_ADDRESS".split("@") 

client = paramiko.SSHClient()

#edit the following line also, with the path to the private ssh key (correspondent to the public one you've registered with your GCE instance)
key_filename=""
#on cloud shell would be something like /home/YOUR_USERNAME/.ssh/google_compute_engine

c = client.connect(username=username, hostname=hostname, key_filename=key_filename)

stdin, stdout, stderr = client.exec_command("cat /etc/os-release") #assuming is linux

print(stdout.read().decode())

client.close()
...