Odpowiedź zależy trochę na co AMI używasz jako funkcje przewidziane są całkowicie zależne od AMI.
Amazon Linux AMIS i oficjalne Ubuntu Amis mieć zainstalowany pakiet cloud-init. Ma to wiele sposobów uruchamiania akcji startowych, ale ta, która najbardziej pasuje do Twojej prośby (i moja ulubiona, ponieważ ją wymyśliłem) jest pojęciem user-data script.
Możesz po prostu przekazać dowolny skrypt (zaczynając od dwóch znaków #!) Jako dane użytkownika podczas uruchamiania instancji EC2. Zostanie uruchomiony jako root przy pierwszym uruchomieniu instancji.
Na konkretnym przykładzie, jak to działa, używam dokładnie tę technikę w moim ostatnim artykule: Uploading Known ssh Host Key in EC2 user-data Script
też chciał uruchomić więcej niż jednej instancji EC2 z tego samego skryptu. Komenda ec2-run-instances oraz powiązane interfejsy API i konsola internetowa umożliwiają określenie dowolnej liczby instancji do uruchomienia z tymi samymi danymi użytkownika. Na przykład:
ec2-run-instances \
--instance-count 10 \
--user-data-file $MYSCRIPT \
--key $USER \
$SOMEAMI
Jeśli obecnie prowadzenie AMI, który nie ma cloud-init, zainstalowany, można wykonać jedną z:
przełączyć się na AMI, który ma cloud-init, lub
Budowa niestandardową wersję swojej AMI, który ma zainstalowany cloud-init, lub
Napisz bardziej skomplikowany skrypt otoki, która sprawia, Reco rd wszystkich identyfikatorów instancji po ich uruchomieniu, czeka na wszystkie wystąpienia, aby przejść do stanu działania, czeka, aż sshd zaakceptuje połączenia, prześle skrypt startowy do każdej instancji i uruchomi skrypt startowy przy każdym wystąpieniu .
Jedną z pozytywnych rzeczy jest to, że zanim zaczniesz szukać wskazówek, facet, którego nazwisko pojawia się we wszystkich zapytaniach google, odpowiedział na twoje pytanie osobiście. Awesome :-) –
Unikałbym opcji 3 powyższej odpowiedzi. Z takim podejściem natrafiłem na dwie różne pułapki. 1) Wystąpienie ma poprzednio widziany adres IP, a wpis known_hosts nie jest zgodny. 2) Urządzenie ładuje i kontroluje wszystkie instancje i skrypty startowe zostaje przeładowane, a przerwy w plikach. – Nate
Najlepszy cytat z SO: "i mój ulubiony, ponieważ go wymyśliłem" –