Cela ressemble à un bogue dans la version 0.8.12 de buildbot. Malheureusement, nous ne pouvons pas mettre à jour à ce stade. Au lieu de cela j'ai installé un script d'initialisation (service) sur l'AMI de base qui lit user_data et étiquette son soi. Je passe les détails de l'étiquette en utilisant le champ user_data dans EC2LatentBuildSlave.
login_aws() {
# Some code to configer aws access keys.
}
get_userdata() {
AWS_USERDATA=$(curl -s http://169.254.169.254/latest/user-data)
echo $AWS_USERDATA
}
tag_self_for_identification() {
login_aws
INSTANCE_ID=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)
if [ -z "$INSTANCE_ID" ]; then
echo "Error unable to obtain instance id"
return 0
fi
USERDATA=get_userdata
set $USERDATA
NAME="$2 $3"
if [ ! -z "$NAME" ]; then
echo "aws ec2 create-tags --resources $INSTANCE_ID --tags Key=Name,Value=$NAME"
aws ec2 create-tags --resources $INSTANCE_ID --tags Key=Name,Value="$NAME" \
Key=Buildbot,Value=Latentslave
fi
}
tag_self_for_identification
Il s'agit d'une solution extrêmement sophistiquée. Cependant, j'ai besoin que les balises fonctionnent pour certaines fonctions lambda afin de pouvoir identifier ces latentes.