Puede agregar esta secuencia de comandos a sus datos de usuario de inicio en la nube para descargar etiquetas EC2 en un archivo 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
Necesita las herramientas de la AWS CLI instaladas en su sistema: puede instalarlas con una packages
sección en un archivo de configuración de la nube antes del script, usar una AMI que ya las incluya o agregar un comando apt
o yum
al principio del script.
Para acceder a las etiquetas EC2, necesita una política como esta en el rol de IAM de su instancia:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1409309287000",
"Effect": "Allow",
"Action": [
"ec2:DescribeTags"
],
"Resource": [
"*"
]
}
]
}
Las etiquetas EC2 de la instancia estarán disponibles /etc/ec2-tags
en este formato:
FOO="Bar"
Name="EC2 tags with cloud-init"
Puede incluir el archivo tal cual en un script de shell usando . /etc/ec2-tags
, por ejemplo:
#!/bin/sh
. /etc/ec2-tags
echo $Name
Las etiquetas se descargan durante la inicialización de la instancia, por lo que no reflejarán los cambios posteriores.
El script y la política de IAM se basan en la respuesta de itaifrenkel.