คุณสามารถเพิ่มสคริปต์นี้ในข้อมูลผู้ใช้ที่เริ่มต้นระบบคลาวด์ของคุณเพื่อดาวน์โหลดแท็ก EC2 ไปยังไฟล์ภายในเครื่อง:
#!/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
คุณต้องติดตั้งเครื่องมือ AWS CLI ในระบบของคุณ: คุณสามารถติดตั้งด้วยpackages
ส่วนในไฟล์การกำหนดค่าระบบคลาวด์ก่อนสคริปต์ใช้ AMI ที่มีอยู่แล้วหรือเพิ่มapt
หรือyum
คำสั่งที่จุดเริ่มต้นของสคริปต์
ในการเข้าถึงแท็ก EC2 คุณต้องมีนโยบายเช่นนี้ในบทบาท IAM ของอินสแตนซ์ของคุณ:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1409309287000",
"Effect": "Allow",
"Action": [
"ec2:DescribeTags"
],
"Resource": [
"*"
]
}
]
}
แท็ก EC2 ของอินสแตนซ์จะพร้อมใช้งานใน/etc/ec2-tags
รูปแบบนี้:
FOO="Bar"
Name="EC2 tags with cloud-init"
คุณสามารถรวมไฟล์ตามที่เป็นอยู่ในเชลล์สคริปต์โดยใช้. /etc/ec2-tags
ตัวอย่างเช่น:
#!/bin/sh
. /etc/ec2-tags
echo $Name
แท็กจะถูกดาวน์โหลดระหว่างการเริ่มต้นอินสแตนซ์ดังนั้นแท็กจะไม่แสดงการเปลี่ยนแปลงในภายหลัง
สคริปต์และนโยบาย IAM เป็นไปตามคำตอบของ itaifrenkel