覆盖 Chef 运行 列表但继续使用节点属性

Overriding Chef run list but keep using node attributes

有没有办法使用 chef-client 的 -o 命令来覆盖 运行 列表 仍然继续使用现有的节点属性?

A​​s mentioned here 当您用 chef-client -o ... 覆盖 运行 列表时,节点属性因此不再应用。

我认为该评论不完全正确。覆盖 运行 列表应该对直接在节点上设置的属性没有影响,并且 运行 列表上的事物的属性按正常情况发生。如果您询问是否有办法从所有主要 运行 列表条目及其依赖项加载属性,但仅 运行 食谱的特定子集,我不知道通用解决方案为了那个原因。对于特定情况,您可以制作一个虚拟食谱,该食谱依赖于主要 运行 列表中的所有内容和一个空白食谱,并将其作为覆盖 运行 列表的第一项。但是你不能动态地做到这一点,所以你需要一本这样的虚拟食谱来应对出现这种情况的每种情况。

如果您使用 -E 传递环境,它应该保留属性。