【发布时间】:2016-09-09 09:38:21
【问题描述】:
是否可以从厨师食谱中设置数据包值?我需要从一个特定节点收集一些信息,然后与另一个节点共享。我想在食谱里做,而不是用刀手动做。
【问题讨论】:
标签: chef-infra chef-recipe databags
是否可以从厨师食谱中设置数据包值?我需要从一个特定节点收集一些信息,然后与另一个节点共享。我想在食谱里做,而不是用刀手动做。
【问题讨论】:
标签: chef-infra chef-recipe databags
您在技术上可以做到这一点,但不要这样做。 Data bags 不应动态修改。这将使系统状态几乎无法推理。
改为使用ohai 在运行时收集有关本地节点的信息,或使用ruby_block 查询远程节点上的ohai 或其他数据收集活动。
此用例在Chef data bag documentation 中专门解决。文档拒绝这样做,并解释了原因。
不建议从配方创建和编辑数据包或数据包项的内容。更新数据包或数据包项的推荐方法是使用刀和刀数据包子命令。如果必须从配方中执行此操作,请注意以下几点:
如果两个操作同时尝试更新数据包的内容,最后一次写入的尝试将是更新数据包内容的操作。这种情况可能会导致数据丢失,因此组织应采取措施确保一次只有一个厨师客户对数据包进行更新。
在使用开源 Chef 服务器时从节点更改数据包需要授予节点的 API 客户端管理员权限。在大多数情况下,这是不可取的。
如果您还是决定这样做,文档会提供一些有限的指导。但是,如果你打破它,你可以保留两半。 :)
【讨论】: