0

J'ai configuré un aws GSS en utilisant ansible à disposition de nouvelles instances, puis installer l'agent codedeploy via le script "user_data" d'une manière similaire à celle proposée dans cette question:Codedeploy avec AWS ASG

Can I use AWS code Deploy for pulling application code while autoscaling?

CodeDeploy fonctionne bien et je peux installer mon application sur l'asg une fois qu'il a été créé. Lorsque de nouvelles instances sont déclenchées dans l'ASG par l'intermédiaire de l'une de mes règles (par exemple une utilisation élevée du processeur), l'agent codedeploy est installé correctement. Le problème est que CodeDeploy n'installe pas l'application sur ces nouvelles instances. Je suspecte qu'il essaye de courir avant que le manuscrit de user_data ait fini. Quelqu'un d'autre a-t-il rencontré ce problème? Ou savez-vous comment faire en sorte que CodeDeploy déploie automatiquement l'application sur les nouvelles instances générées dans le cadre de l'ASG?

Répondre

0

AutoScaling indique à CodeDeploy de démarrer le déploiement avant le démarrage des données utilisateur. Pour contourner ce CodeDeploy donne à l'instance jusqu'à une heure pour commencer à interroger des commandes pour le premier événement de cycle de vie au lieu de 5 minutes. Comme vous avez des problèmes avec les déploiements automatiques, mais pas manuels, et en supposant que vous n'ayez pas apporté de modifications manuelles à vos instances que vous avez oubliées, il y a probablement une dépendance spécifique à votre déploiement qui n'est pas encore disponible au l'heure à laquelle l'instance est lancée. Essayez d'énumérer tous les éléments dont votre déploiement a besoin pour réussir et assurez-vous que chacun d'entre eux est disponible avant d'installer l'agent hôte. Si vous pouvez vous connecter à l'instance assez rapidement (avant que l'AutoScaling ne termine l'instance), vous pouvez essayer de récupérer les journaux de l'agent hôte et les journaux de votre application pour savoir où le déploiement échoue.

Si vous pensez que l'installation de l'agent hôte échoue complètement, assurez-vous que Ruby2.0 est installé. Il devrait être présent par défaut sur AmazonLinux, mais Ubuntu et RHEL doivent l'avoir installé dans le cadre des données utilisateur avant de pouvoir installer l'agent hôte. Il y a un programme d'installation log dans /tmp que vous pouvez vérifier pour les problèmes dans l'installation initiale (encore une fois vous devez être rapide pour saisir le journal avant que l'instance se termine).