chef-soloを使ってOracle版Javaのセットアップしようとしても、
Oracleのサイトから利用規約に合意して、
JDKをダウンロードという手順を踏む必要があるので、
そのままでは、自動化することが出来ません。

そこで、以下の2つの方法を考えました、
①社内用のyumリポジトリを用意して、ダウンロードしたJDKのrpmを配置
 社内用yumリポジトリからchefでセットアップする
②chefのcookbookの中に、ダウンロードしたJDKのrpmを配置
 cookbookの中のrpmを使ってセットアップする

①の方法が素直ですが、
小規模な場合は社内用yumリポジトリを作るのも面倒なので、
ここでは②の方法でOracle版JDKをセットアップします。

rpmが含まれていないOracle版JDK用セットアップ用のcookbookを、
githubに作ったので、これをcloneして作業を進めます。
 https://github.com/takemikami/chef-oraclejdk

Knife Soloのインストール

管理用のマシンで、
以下のコマンドから、Knife Soloの作業用ディレクトリを作成します。

$ mkdir ~/jdksetup

作業用ディレクトリに以下ファイルを作成します。

Gemfile

source 'https://rubygems.org'
gem 'chef'
gem 'knife-solo'

以下のコマンドで、KnifeSoloをインストールします。

$ bundle install --path=vendor/bundle

以下のコマンドで、knifeのディレクトリ構成を作成します。

$ bundle exec knife solo init .

ここまでで、以下のような構成になります。
 + Gemfile
 + Gemfile.lock
 + cookbooks
 + data_bags
 + environments
 + nodes
 + roles
 + site-cookbooks
 + vendor

Oracle版JDK用セットアップ用のcookbookの作成

以下のサイトからJavaSDKをダウンロードします。

Java SE Downloads
 http://www.oracle.com/technetwork/java/javase/downloads/index.html
ファイル名:jdk-7u25-linux-x64.rpm (Linux x64の場合)

以下のコマンドで、
Oracle版JDK用セットアップ用のcookbook雛形をcloneする。

$ cd ~/jdksetup/cookbooks
$ git clone git@github.com:takemikami/chef-oraclejdk.git oraclejdk

ダウンロードしたrpmを、
「~/jdksetup/cookbooks/oraclejdk/files/default/」以下にコピーする。

Oracle版JDKセットアップ用のcookbookを適用

knife-soloで接続できるCentOSの環境が用意されているとして、
以下のコマンドで、knifeの環境を準備します。

$ cd ~/jdksetup/
$ bundle exec knife solo prepare <接続先マシン名>

次のファイルに適用時の設定(JDKのバージョン)を追記します。

nodes/<接続先マシン名>.json

{
"run_list":["recipe[oraclejdk]"],
"default_attributes": {
"oraclejdk": {
"version": "7u25"
}
}
}

以下のコマンドで、knifeでcookbookを適用をします。

$ bundle exec knife solo cook <接続先マシン名>

セットアップ確認

以下のコマンドで、
JDKをセットアップしたマシンに、JDKがセットアップされている事を確認します。

$ ssh <接続先マシン名>
$ java -version

ここまででOracle版JDKのセットアップは完了です。

この手順で作成した(rpmが含まれた)「oraclejdk」を、
社内のgitリポジトリなどにおいて管理しておけば、
以後、Oracle版JDKが必要なマシンをchefでセットアップするのが楽になると思います。