为多个ec-2实例分配主机名的最佳方法

时间:2018-03-10 06:53:30

标签: amazon-web-services amazon-ec2 cloud amazon-cloudformation

我正在尝试使用云形成模板开发自动调节策略,以便在AWS云中发生负载激增时启动多个ec2实例。

每次通过自动缩放生成新节点时,我需要分配一个主机名。主机名应该是这样的,它应该类似于节点应用程序角色(例如web,db或邮件服务器等等......这是我的遗留应用程序的要求。主机名可以像web01一样顺序, web02用于Web服务器,db01,db02 ...用于数据库服务器。我不知道如何实现它,任何帮助都将不胜感激。

1 个答案:

答案 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 ......好吧,设置主机名。