我正在尝试使用云形成模板开发自动调节策略,以便在AWS云中发生负载激增时启动多个ec2实例。
每次通过自动缩放生成新节点时,我需要分配一个主机名。主机名应该是这样的,它应该类似于节点应用程序角色(例如web,db或邮件服务器等等......这是我的遗留应用程序的要求。主机名可以像web01一样顺序, web02用于Web服务器,db01,db02 ...用于数据库服务器。我不知道如何实现它,任何帮助都将不胜感激。
答案 0 :(得分:1)
它实际上是一个单行:
sudo hostname `curl http://169.254.169.254/latest/meta-data/iam/info | jq -r .InstanceProfileArn | cut -d "/" -f 2`
只需在实例启动时运行(在cloud-init
脚本,/etc/rc.local
,/etc/init.d/hostname
等)。
curl http://169.254.169.254/latest/meta-data/iam/info
以JSON格式接收有关IAM实例配置文件的信息(EC2实例实际上没有IAM角色,它们具有从IAM角色派生的配置文件)。
jq -r .InstanceProfileArn
仅从该JSON中提取个人资料ARN。
cut -d "/" -f 2
会删除配置文件ARN中的所有内容,但最后一部分与IAM角色匹配。
hostname
......好吧,设置主机名。