Когда я создаю LWRP, почему ноль моего глобального ресурса в контексте ресурса Chef
Создание пользовательского LWRP сообщает, что ресурс не равен контексту ресурса шеф-повара. Это был мой первый шаг?
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 с глобальными переменными?
1 ответ
Я обнаружил, что с помощью @new_resource
в подресурсе LWRP просто не работает, но с использованием new_resource
(без @) отлично работает.