0

我正在编写一个厨师配置配方来配置一组机器。我已经或多或少地这样做了,但现在我想将所有已配置机器的主机文件设置为所有其他主机的动态分配 IP 地址。有没有办法查询配置主机的 IP 地址是什么?

4

2 回答 2

1

不在 ChefProvisioning 层上,但我这样做如下:

您可以使用厨师超市的hostsfile 食谱和厨师服务器中的数据包。

可以使用属性访问一个节点 IP node[:ipaddress],将其存储在数据包中,然后通过所有 ips 循环访问,使用 hostsfile 食谱创建/更新具有资源的条目hostsfile_entry,类似于:

node[:list_of_hosts].each do |name, ip|
  hostsfile_entry ip do
    hostname name
    action [:create_if_missing, :update]
  end
end

假设您在散列中有来自数据包的 IP 和主机名列表。

希望你觉得这很有帮助。

于 2016-10-12T13:21:54.967 回答
0

简短的回答是:你不知道这是你不应该使用厨师供应的原因之一。长答案,一些驱动程序允许通过资源访问底层对象,但你最终得到的东西看起来不像普通的厨师代码。将每个machine对象存储在一个数组中,然后您可以尝试将其用于第二次传递。

真正的答案是,配置层不应该这样做,在实际配置节点上使用 Chef Search 或相关云 API 之类的东西,就像使用“普通”厨师一样。

于 2016-10-11T21:57:11.303 回答