1

カスタム LWRP の作成は、リソースが Chef のリソース コンテキストに nil であることを報告しています。これは私の最初のステップでしたか?

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 リソース コンテキストに問題はありますか?

4

1 に答える 1

1

@new_resourceLWRP のサブリソースで使用しても機能しないことがわかりましたが、 new_resource(@ なしで) 使用すると問題なく機能します。

于 2014-08-19T09:02:36.813 に答える