Puppet节点主机名

29

我正在使用Puppet来配置服务器,我想在*.erb模板中打印当前机器(节点)的名称。虽然有一个hostname变量,但是它保存的是puppetmaster的主机名。是否有关于此主题的好参考/列表?

5个回答

38

看起来我在某个地方看错了。我可以在*.erb模板中调用以下代码来获取(打印)node-hostname:

<%= @hostname %>

编辑:从 Puppet 3 开始,使用本地变量(例如 hostname)已被弃用;Puppet 4 将完全取消对它们的支持。推荐的方法是使用实例变量(以 @ 为前缀)。因此,在这种情况下,使用 @hostname来源


啊,确实,我真的很困惑,因为在我的情况下,“fqdn”返回完整的主机名(例如“myhost.acnemcom”),而“hostname”则返回简化版(使用命令“hostname -s”返回的版本),例如“myhost”。无论哪种情况,都没有返回puppetmaster的主机名。 - Pierluigi Vernetto

32

在终端中输入以下命令将返回erb文件中可用的变量:

facter --puppet

1
这个答案表明我想要从我的应用程序中获取的不是“主机名”,而是“完全限定域名”。 - Niels Basjes

6

以上所有内容都是正确的;根据您的需要,您还可以找到fqdn变量有用。

如果您确实需要在模板中使用puppet主服务器的信息,则可以使用变量servernameserveripserverversion(来自Puppet文档)。


4
显然,现在您可以使用
<%= fqdn %> 

获取 DNS 反向名称。

如果需要将其转换为小写,使用

<%= fqdn.downcase %>

3

需要注意的是,这里提到的是主机名而不是节点名称(你最初所询问的)。在99%的情况下,它们将是相同的。据我所知,在模板中没有获取实际节点名称的方法(如果有的话,我很想听听)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接