1

Je configure un processus de correction pour les serveurs EC2 exécutant une application Web.Exécution de mises à jour sur les EC2 en cas d'échec de la vérification d'état

J'ai besoin de construire un processus automatisé qui installe les mises à jour du système, mais qui revient à la dernière instance ec2 qui fonctionne si l'application Web échoue à une vérification de l'état.

J'ai essayé de le faire en utilisant un document d'automatisation dans EC2 Systems Manager qui exécute les étapes suivantes:

  1. Arrêt instance EC2
  2. Créer AMI à partir par exemple
  3. Lancer une nouvelle instance de nouveau créé AMI
  4. Run mises à jour
  5. Run vérification de l'état de l'application Web
  6. Si la vérification échoue, arrêtez n par exemple ew et redémarrez instance originale

L'automatisation de documents exécute les 5 premières étapes avec succès, mais je ne peux pas déterminer comment déclencher l'étape 6? Puis-je le faire dans le document d'automatisation? Quel résultat pourrais-je appeler depuis l'étape 5? Si elle utilise aws: runCommand, est-ce que runCommand doit déclencher un nouveau document d'automatisation ou un autre outil AWS?

Répondre

0

J'ai essayé ce qui suit pour résoudre ce problème, qui plus ou moins travaillées:

  • Inclus un aws: action ExécuterCommande dans le document d'automatisation
  • Ce couru le DocumentName "AWS-RunShellScript" avec le paramètres suivants:

Téléchargé le script de s3:

sudo aws s3 cp s3://path/to/s3/script.sh /tmp/script.sh 

Définissez le fichier exécutable:

chmod +x /tmp/script.sh 

Exécuté le script en utilisant des variables définies, ou généré par le document d'automatisation

bash /tmp/script.sh -o {{VAR1}} -n {{VAR2}} -i {{VAR3}} -l {{VAR4}} -w {{VAR5}} 

Le script inclus commande les getopts suivantes pour définir les variables entrées:

while getopts o:n:i:l:w: option 
do 
case "${option}" 
in 
n) VAR1=${OPTARG};; 

o) VAR2=${OPTARG};; 

i) VAR3=${OPTARG};; 

l) VAR4=${OPTARG};; 

w) VAR5=${OPTARG};; 

esac 

done 

Le script bash utilisait les variables pour exécuter la vérification d'état et revenir à la dernière exemple d'instance si elle a échoué.