对于给定的用例,我需要通过自定义 LWRP 更新节点的标签。我尝试了两种方法:
使用“标签”/“取消标签”。这会产生错误:
No resource or method named `tag' for ...
使用
node[:tags].concat(<new_tags_array>)
. 这有效,但标签不会持续存在,所以我不能用它来搜索。
我在这里缺少什么吗?
谢谢
编辑:实际上,问题是:甚至可以从提供者更新节点属性吗?
EDIT2:所以这正确设置了标签:
tags = node[:tags]
tags.concat(new_tags)
node.override[:tags] = tags
但是,标签在每次运行 chef-client 时都会重置,因此如果您在包含这些新标签之前检查它们是否存在(在第二次 chef-client 运行中),您将不会获得任何标签。