2011-01-13 23 views
2

Ich verfolge dieses Tutorial: https://help.ubuntu.com/community/EC2StartersGuideHilfe für EC2-api-Tools für Ubuntu

eine Instanz zu starten, führen Sie:

ec2-run-instances ami-xxxxx -k ec2-keypair 

Dann laufen:

ec2-describe-instances 

die Ruft den externen Hostnamen der Instanz ab.

Und später, zu ssh, Sie laufen:

ssh -i /path/to/ec2-keypair.pem [email protected]<external-host-name> 

Dies funktioniert gut, aber hier ist meine Frage:

Wie kann ich dies in einem Bash-Skript automatisieren? Kann ich die Antwort von "ec2-describe-instances" irgendwie analysieren?

Antwort

0

Ich weiß nicht, was die Ausgabe von ec2-describe-instances aussieht, aber wenn es einfach der Hostname, dann sollten Sie in der Lage zu tun:

host=$(ec2-describe-instances) 
ssh -i /path/to/ec2-keypair.pem [email protected]$host 
+0

Es ist nicht. Ich fand http://stackoverflow.com/questions/2644742/getting-id-of-instance-newly-launched-with-ec2-api-tools und http://www.thegeekstuff.com/2010/01/ awk-einführung-tutorial-7-awk-print-beispiele/um sehr hilfreich zu sein. Ich benutze Linux seit ungefähr 6 Monaten und habe erst vor kurzem begonnen, bash scripting zu lernen. – user94154

+0

@user: Die SO Frage, mit der Sie verlinkt haben, zeigt die Ausgabe von 'ec2-run-instances'. Ist die Ausgabe von 'ec2-describe-instances' gleich? Ähnlich? Kannst du es zeigen? In welchem ​​Bereich suchen Sie? Kann [die Filter] (http://docs.amazonwebservices.com/AWSEC2/latest/CommandLineReference/index.html?ApiReference-cmd-DescribeInstances.html) die Informationen eingrenzen, sodass weniger geparst werden muss? –

+0

external_dns = $ (ec2-describe-instances $ instance_id | awk '/ INSTANCE/{print $ 4}'). Sie müssen jedoch sicherstellen, dass die Instanz bereitgestellt wurde, andernfalls wird "ausstehend" zurückgegeben. – user94154