2011-10-18 3 views
2

Je peux lancer AWS instance Ubuntu EC2 avec boto. Quelqu'un at-il essayé de télécharger le script sur l'Ubuntu EC2 distant (plus de 1) et d'exécuter le script via SSH localement?Amazon Web Service/Boto: Téléchargez et exécutez le script distant python/bash via SSH sur localhost

L'objectif principal est d'automatiser l'ensemble du processus en utilisant un script Python écrit sur localhost. Existe-t-il un moyen alternatif ou des outils Amazon api pour rendre cela possible?

Répondre

1

Je recommande Fabric, il est fait pour ce genre de chose.

0

Ici, le code Paramiko pour exécuter à distance dans 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() 
Questions connexes