【问题标题】:How to set/change host name using Chef?如何使用 Chef 设置/更改主机名?
【发布时间】:2019-12-03 17:30:27
【问题描述】:

我有几个节点处于运行模式,我必须为这些节点设置主机名。

是否有任何 Cookbook,我们可以设置属性 host_name 并在各个节点上运行该配方?

【问题讨论】:

  • 您好,我正在寻找相同的。你能帮我看看这个食谱怎么用吗?
  • 有一个社区hostnamecookbook。

标签: ubuntu chef-infra knife


【解决方案1】:

作者注

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

正如@lamont 指出厨师now supports a hostname 资源


原答案

有一个社区hostnamecookbook。

【讨论】:

  • 如何在 centos 中使用这个配方?
  • 我们需要进行哪些更改。
  • @user3086014 文档没有将 centos 列为受支持的操作系统。然而,测试厨房文件确实使用 CentOS-6.4 测试了这本食谱,并且默认配方包含 centos 逻辑。你试过这本食谱吗?
  • 我没试过这本食谱!!我无法成功上传。我无法理解如何使用它。
【解决方案2】:

注意:现在有一个 hostname resource in the chef-client itself 基于此答案中的 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 编辑

【讨论】:

    【解决方案3】:

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

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

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

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

    【讨论】:

    • 感谢分叉/修复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    • 2019-06-17
    • 1970-01-01
    • 2022-06-15
    • 2010-09-17
    • 2020-04-17
    相关资源
    最近更新 更多