「私はシェフの専門家ではありません」と答えてください...しかし、問題はChefの「ネストされた属性」にあると思います。バージョンだけをオーバーライドすることはできないと思います。なぜなら、あなたの厄介なレシピで問題となる可能性のあるすべてのことを調べた後、私はこれを見つけたからです。
http://lists.opscode.com/sympa/arc/chef/2012-10/msg00265.html
デフォルトの jdk バージョンが設定された後に設定される他の属性がいくつかあります。ここを見ると:
http://community.opscode.com/cookbooks/java/source
そのデフォルト バージョンを使用して設定されることがわかります。default['java']['openjdk_packages']
また、「install_flavor」が選択されている可能性が高い openjdk レシピは、その属性のみを調べます。jdk_version を直接読み込むことはありません。興味深いことに、java::oracle レシピ (java::oracle_i386 および java::oracle_rpm とともに) はバージョンを直接読み込むため、最初の試みはそれでうまくいったはずです。
特定のプラットフォームに基づいて、これらのいずれかでバージョンを設定してみます。
Redhat/CentOS: node.override[:java][:openjdk_packages] = ["java-1.7.0-openjdk", "java-1.7.0-openjdk-devel"]
Debian/Ubuntu: node.override[:java][:openjdk_packages] = ["openjdk-7-jdk"]
その他の「platform_family」の選択肢は、https ://github.com/opscode-cookbooks/java/blob/master/attributes/default.rb にあります。