Vous pouvez ajouter ce script à votre cloud-init données de l'utilisateur à télécharger EC2 balises dans un fichier local:
#!/bin/sh
INSTANCE_ID=`wget -qO- http://instance-data/latest/meta-data/instance-id`
REGION=`wget -qO- http://instance-data/latest/meta-data/placement/availability-zone | sed 's/.$//'`
aws ec2 describe-tags --region $REGION --filter "Name=resource-id,Values=$INSTANCE_ID" --output=text | sed -r 's/TAGS\t(.*)\t.*\t.*\t(.*)/\1="\2"/' > /etc/ec2-tags
Vous avez besoin d'AWS outils CLI installé sur votre système: vous pouvez les installer avec un packages
section dans un nuage fichier de config avant que le script, utilisez un AMI, qui comprend déjà, ou ajouter un apt
ou yum
commande au début du script.
Pour accéder EC2 tags vous besoin d'une politique de ce genre dans votre exemple du rôle IAM:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1409309287000",
"Effect": "Allow",
"Action": [
"ec2:DescribeTags"
],
"Resource": [
"*"
]
}
]
}
L'instance EC2 balises sera disponible en /etc/ec2-tags
dans ce format:
FOO="Bar"
Name="EC2 tags with cloud-init"
Vous pouvez inclure le fichier dans un script shell en utilisant . /etc/ec2-tags
, par exemple:
#!/bin/sh
. /etc/ec2-tags
echo $Name
Les balises sont téléchargés lors de l'initialisation instance, de sorte qu'ils ne reflète pas les modifications ultérieures.
Le script et IAM politique sont basés sur itaifrenkel de réponse.