0

J'ai monté EBS sur une instance compatible ecs dans AWS.Redémarrage de ecs-agent à partir des données utilisateur

Pour qu'EBS soit visible par le docker, le démon docker doit être redémarré. J'ai ajouté des commandes appropriées aux données utilisateur. Mais je suis incapable de redémarrer le conteneur docker ecs-agent à partir des données utilisateur.

Suite est ma-données utilisateur:

#!/bin/bash 
echo ECS_CLUSTER=MYCLUSTER>> /etc/ecs/ecs.config 
mkfs -t ext4 /dev/sdb 
mkdir /db/ 
mount /dev/sdb /db/ 
service docker stop 
service docker start 
docker start ecs-agent 

Sur SSH, je pouvais voir que le conteneur ecs-agent est créé, mais il ne fonctionne pas. Lorsque je démarre le conteneur manuellement, cela fonctionne. Quelle est la bonne façon de le démarrer lors du lancement de l'instance? Que manque-t-il dans mon script de données utilisateur?

Je dois créer une configuration de lancement à utiliser dans mon groupe de mise à l'échelle automatique. Les instances doivent avoir EBS activé et visible pour docker.

Répondre

3

Si vous devez redémarrer le démon Docker, il semble probable que vous avez affaire à une instance EC2 existante. Dans ce cas, les scripts de données utilisateur ne vous aideront pas car selon le EC2 User Guide ils "ne s'exécutent que pendant le premier cycle de démarrage lorsqu'une instance est lancée". En ce qui concerne la manière correcte de démarrer l'agent ECS lors du lancement de l'instance, cela dépend de la distribution que vous utilisez. Pour Amazon instances Linux le ECS Developer Guide recommande le paquet ecs-init:

sudo yum install -y ecs-init 
sudo service docker start 
sudo start ecs 

(Si vous mettez dans vos scripts de données utilisateur, ne pas utiliser sudo.)

+0

Merci. Mon AMI est ecs-enabed. Donc, je ne dois pas faire un 'yum install'. Mais j'ai essayé les deux autres étapes. Le redémarrage du Docker n'est pas propre. ecs-agent start semble échouer avec une erreur de devicemapper. – Nataraj

+0

Voulez-vous dire que vous utilisez une [AMI optimisée pour Amazon ECS] (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)? Dans ce cas, 'ecs-init' est pré-installé et gère l'initialisation de l'agent ECS, donc vous n'avez pas à vous soucier de la façon correcte de le démarrer lors du lancement de l'instance. – rbarni