#python #ubuntu #ssh #amazon-web-services #boto
#python #ubuntu #ssh #amazon-веб-сервисы #boto
Вопрос:
Я могу запустить экземпляр AWS Ubuntu EC2 с помощью boto. Кто-нибудь пытался загрузить скрипт на удаленный Ubuntu EC2 (более 1) и выполнить скрипт через SSH локально?
Основная цель — автоматизировать весь процесс с помощью скрипта Python, написанного на localhost. Есть ли альтернативный способ или инструменты Amazon API, которые сделали это возможным?
Ответ №1:
Я бы рекомендовал Fabric, он создан для такого рода вещей.
Ответ №2:
Используйте paramiko API
Ответ №3:
Здесь код Paramiko для выполнения на удаленном AWS EC2 Python :
import paramiko
sftp, transport= None, None, None
try:
if keyfilepath=='': keyfilepath= AWS_KEY_PEM
if keyfiletype == 'DSA': key = paramiko.DSSKey.from_private_key_file(keyfilepath)
else: key = paramiko.RSAKey.from_private_key_file(keyfilepath)
if contype== 'sftp' :
transport = paramiko.Transport((host, port))
transport.add_server_key(key)
transport.connect(None, username, pkey=key)
sftp = paramiko.SFTPClient.from_transport(transport)
if isprint : print('Root Directory :n ', sftp.listdir())
return sftp
except Exception as e:
print('An error occurred creating client: %s: %s' % (e.__class__, e))
if sftp is not None: sftp.close()
if transport is not None: transport.close()
if ssh is not None: ssh.close()