gpt4 book ai didi

amazon-web-services - 自动缩放组主机名和 cloud-init

转载 作者:行者123 更新时间:2023-12-01 06:08:05 25 4
gpt4 key购买 nike

通过简短的搜索 - 似乎没有一种方法可以为自动缩放组的成员设置动态主机名。该功能存在于 OpenStack Heat 中,使用 index - 但我找不到任何关于 AWS 自动缩放组的信息。

例如,使用 OpenStack Heat - 节点会根据自动缩放组中的节点数自动获得主机名:

  instance_group:
type: OS::Heat::ResourceGroup
properties:
count: { get_param: instance_number }
resource_def:
type: OS::Nova::Server
properties:
name: instance%index%

如果我在自动缩放组中有 3 个实例,会给我以下信息
instance0
instance1
instance2

是否有类似的方法可以用于 AWS 自动缩放组启动配置和/或 cloud-init?

最佳答案

如果您坚持一些不合理的约定,我已经找到了一个效果很好的解决方案。

我启动的每一种 EC2 实例,无论是自动缩放组中有 N 个此类服务器还是它的独立实例,我都会为其创建一个实例配置文件。无论如何,根据我的经验,这是一个好主意,即使您不需要实例来访问任何 aws 服务,拥有一个具有空权限的角色/配置文件也没有什么坏处,这使得它更容易访问一个 s3 存储桶或将来需要的其他任何东西。

然后在服务器启动时 user_data 脚本(或者你的配置管理工具,如果你正在使用类似 puppet 或 ansible 的东西),我从 metadata service 查询实例配置文件名称并为每个服务器附加一些独特的东西,比如私有(private) ip,并将其设置为主机名。

你最终会得到像 webserver-10-0-12-58 这样的主机名。这对每个服务器都是人类可读的和唯一的。

(这个与递增整数的缺点是这些是不可预测的,并且不能用于为单个服务器设置独特的行为。例如,如果您有 webserver-{0-8} 并且需要运行一些进程在一台服务器上,您可以使用 if hostname == webserver-0 then run_thing 这样的逻辑。)

关于amazon-web-services - 自动缩放组主机名和 cloud-init,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36157955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com