Chef infra 厨师配方资源中的node.override属性已设置但未使用
我的配方中有一个覆盖节点属性的自定义资源。当我在同一配方的后续资源部分中使用该节点属性时,它使用的是cookbook属性文件中设置的默认属性,而不是自定义配方资源中设置的值。在chef客户端运行之后,节点上的属性值将显示预期的覆盖值。是什么导致配方不使用覆盖属性?我假设您正在尝试覆盖Chef infra 厨师配方资源中的node.override属性已设置但未使用,chef-infra,Chef Infra,我的配方中有一个覆盖节点属性的自定义资源。当我在同一配方的后续资源部分中使用该节点属性时,它使用的是cookbook属性文件中设置的默认属性,而不是自定义配方资源中设置的值。在chef客户端运行之后,节点上的属性值将显示预期的覆盖值。是什么导致配方不使用覆盖属性?我假设您正在尝试覆盖节点['something']['content'],您的配方如下所示: my_resource 'a name' do action :run end file '/tmp/file' do conten
节点['something']['content']
,您的配方如下所示:
my_resource 'a name' do
action :run
end
file '/tmp/file' do
content node['something']['content']
end
自定义资源的:run
操作中定义的代码在聚合时执行,而文件资源中使用的属性节点['something']['content']
在编译时读取
作为参考,chef客户端运行可以描述为:
- 库加载
- 属性编译(在这里设置属性的默认值)
- 配方编译(这是使用参数构建my_资源和文件资源的地方)
- 资源聚合(这是执行
操作代码和覆盖属性的地方):run
- 报告(这是将覆盖的属性值发送到chef服务器的位置)