自定义LWRP的创建报告资源在Chef的资源上下文中为零。这是我的第一步?
action :install do
converge_by "Installing postgresql-#{@new_resource.version}" do
execute "sudo apt-get install postgresql-#{@new_resource.version} #{@new_resource.options}" do
not_if { "dpkg --get-selections | grep postgresql-#{VERSION}" }
end
@new_resource.updated_by_last_action(true)
end
end
但是,我将全局变量值保存在其他局部变量中。像这样:
action :install do
converge_by "Installing postgresql-#{@new_resource.version}" do
VERSION = @new_resource.version
OPTIONS = @new_resource.options
execute "sudo apt-get install postgresql-#{VERSION} #{OPTIONS}" do
not_if { "dpkg --get-selections | grep postgresql-#{VERSION}" }
end
@new_resource.updated_by_last_action(true)
end
end
然后,问题得到了解决。
Chef资源上下文中是否存在全局变量问题?
答案 0 :(得分:1)
我发现在LWRP的子资源中使用@new_resource
只是不起作用,但使用new_resource
(没有@)可以正常工作。