1

是否可以从厨师食谱中设置数据包值?我需要从一个特定节点收集一些信息,然后与另一个节点共享。我想在食谱里面做,而不是用刀手动做。

4

1 回答 1

3

TL;博士

你在技术上可以做到,但不要。不应动态修改数据包。这将使系统状态几乎无法推理。

相反,使用ohai在运行时收集有关本地节点的信息,或使用ruby​​_block查询远程节点上的 ohai 或其他数据收集活动。

不要这样做

这个用例在Chef 数据包文档中专门解决。文档说不这样做,并解释了原因。

不建议从配方创建和编辑数据包或数据包项的内容。更新数据包或数据包项的推荐方法是使用刀和刀数据包子命令。如果必须从配方中执行此操作,请注意以下几点:

  • 如果两个操作同时尝试更新数据包的内容,则最后一次写入的尝试将是更新数据包内容的操作。这种情况可能导致数据丢失,因此组织应采取措施确保一次只有一个厨师客户对数据包进行更新。

  • 使用开源 Chef 服务器时从节点更改数据包需要授予节点的 API 客户端管理员权限。在大多数情况下,这是不可取的。

如果您还是决定这样做,文档会提供一些有限的指导。但是,如果你打破它,你可以保留两半。:)

于 2016-09-08T21:10:49.527 回答