如何更改 Puppet 配置的服务器上的计算机名称

如何更改 Puppet 配置的服务器上的计算机名称

我是 Puppet 新手,我试图让 Puppet 在从 AWS 中的云形成模板启动 EC2 实例后对其进行配置。问题是从云形成模板启动的所有节点都具有相同的名称(新节点从 AMI 派生的名称)。

我很想找到一种方法,让 Puppet 在节点启动时重命名节点。(尽管据我所知,更改计算机名称需要重新启动,这是一个单独的问题……)

如果您能为我指出一些可以帮助我解决这个问题的文档,或者如果您有任何想法,那就太好了。我的最终目标是让每个 EC2 都以唯一的名称启动,以便我可以使用 New Relic 服务器监控来报告不同的服务器。

我最终需要为 Linux 和 Windows Server 2008 R2 实现这一点,但我认为我已经弄清楚了 Linux 方面的问题。

更新:
我与 New Relic 讨论了这个问题,他们确认 New Relic 目前无法使用除机器名称之外的其他名称进行报告。因此,从 New Relic 方面解决问题目前还不是一个选择。
我还想避免在创建机器后更改机器名称,因为我不想在机器启动后重新启动它。
我的理想选择是让 Cloud Formation 能够从 AMI 生成新的 EC2 实例,但在创建过程中使用特定的机器名称(例如将机器名称设置为实例 ID 或其他名称)。

答案1

对于 new relic,您只需更改主机名,因为这是他们使用的标识符。主机名更改不需要重新启动,至少对于 Linux 来说不需要。您可以在 puppet exec 中执行以下操作:

hostname `ifconfig eth0|grep "inet addr"| awk -F ":" '{print $2}'|awk '{print $1}'`

这会将您的主机名设置为 IP 地址,newrelic 可以使用它作为标识符。您也可以更轻松地诊断问题,因为它们将根据机器的 IP 地址显示。

答案2

如果启动 EC2 的 AMI 已配置为在 EC2 配置服务中将计算机名称设置为 ip-,则 EC2 将以唯一名称启动。

看看这个:http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/UsingConfig_WinAMI.html

相关内容