5

我在运行模式下的节点很少,我必须为这些节点设置主机名。

是否有任何食谱,因为我们可以设置属性 host_name 并在各个节点上运行该食谱?

4

3 回答 3

5

作者注

这个答案已经超过 6 年了。

正如@lamont 指出的那样,厨师现在支持主机名资源


原始答案

有一个社区主机名食谱。

于 2013-08-28T22:51:05.783 回答
2

注意:现在chef-client 本身中有一个主机名资源,它基于此答案中的 chef_hostname 食谱,这是每个人都应该使用的

我刚刚发布了一份 chef_hostname 食谱的初始版本:

https://supermarket.chef.io/cookbooks/chef_hostname

要使用它,请在 metadata.rb 中声明您依赖它:

depends "chef_hostname"

然后在您的配方代码中,只需使用hostname它提供的资源来设置主机名:

hostname "foo.example.com"

或者将主机名设置为 node.name:

hostname node.name

或设置为您关心使用的任何属性:

hostname node["set_fqdn"]

这本食谱解决了许多悬而未决的问题。包括针对主机名说明书打开的所有问题和 PR:

  • 正确支持 Fedora
  • 支持使用 hostnamectl 的 centos7 和 systemd 系统
  • 对 /etc/hosts 和 /etc/sysctl.conf 等文件进行正确的幂等行编辑
  • node['fqdn'] 设置主机名后正常工作
  • 已经相当便携了,以后我会添加更多的操作系统
  • 默认为 /etc/hosts 的 node['ipaddress'],允许调整
  • 允许完全禁用 /etc/hosts 编辑
于 2016-03-11T01:56:32.043 回答
1

查看我更新的主机名说明书的分支,它修复了主机名中的一个错误,即域名被两次附加到 FQDN。

此外,此分支允许您将 ip 设置为 node["ipaddress"] 而不是默认的 127.0.1.1 或其他一些静态 ip。

https://github.com/nathantsoi/chef-cookbook-hostname

或者

https://supermarket.getchef.com/cookbooks/hostnames

于 2014-08-01T19:11:06.337 回答