Sto provando a connettermi all'istanza Amazon EC2 tramite SSH utilizzando boto
. So che la connessione ssh può essere stabilita dopo un po 'di tempo dopo la creazione dell'istanza. Quindi le mie domande sono:Come verificare se la connessione SSH è stata stabilita con l'istanza AWS
- Posso verificare in qualche modo se SSH è attivo sull'istanza? (se sì, come?)
- O come posso verificare l'uscita di
boto.manage.cmdshell.sshclient_from_instance()
? Intendo, ad esempio, se l'output stampaCould not establish SSH connection
, di riprovare.
Questo è quello che ho provato finora, ma non hanno fortuna:
if instance.state == 'running':
retry = True
while retry:
try:
print 'Connecting to ssh'
key_path = os.path.join(os.path.expanduser('~/.ssh'), 'secret_key.pem')
cmd = boto.manage.cmdshell.sshclient_from_instance(instance,
key_path,
user_name='ec2-user')
print instance.update()
if cmd:
retry = False
except:
print 'Going to sleep'
time.sleep(10)
SSH Connection refused, will retry in 5 seconds
SSH Connection refused, will retry in 5 seconds
SSH Connection refused, will retry in 5 seconds
SSH Connection refused, will retry in 5 seconds
SSH Connection refused, will retry in 5 seconds
Could not establish SSH connection
E, naturalmente, tutto funziona correttamente, perché posso lanciare lo stesso codice dopo qualche tempo e vi ottenere una connessione, e sarà in grado di utilizzare cmd.shell()
Grazie, è molto intelligente. – Vor