This cookbook has been forked from hmalphettes/storm-project-cookbook and a first pass of modifications have been made to support any Storm version (0.9.1-incubating by default), added recipe for a single node cluster deployment, a recipe for a UI node and added/cleaned some options. I am using this cookbook with Chef Solo and Vagrant. Lots of modifications are still required to put this cookbook in better shape.
This cookbook will install the following:
- Zookeeper, current Ubuntu package
- Storm 0.9.1-incubating by default but configurable
- Ubuntu Linux
- Java 1.7 need to be installed. I suggest this Java cookbook
- storm::singlenode
- storm::nimbus
- storm::supervisor
- storm::ui
- storm::drpc
The storm::singlenode
recipe installs nimbus, supervisor, drpc and ui on the same node.
default[:storm][:version] = "0.9.1-incubating"
default[:storm][:deploy][:user] = ::File.exists?("/home/vagrant") ? "vagrant" : "ubuntu"
default[:storm][:deploy][:group] = ::File.exists?("/home/vagrant") ? "vagrant" : "ubuntu"
default[:storm][:nimbus][:host] = "192.168.42.10"
default[:storm][:supervisor][:hosts] = [ "192.168.42.20" ]
default[:storm][:nimbus][:childopts] = "-Xmx512m -Djava.net.preferIPv4Stack=true"
default[:storm][:supervisor][:childopts] = "-Xmx512m -Djava.net.preferIPv4Stack=true"
default[:storm][:supervisor][:workerports] = (6700..6706).to_a
default[:storm][:worker][:childopts] = "-Xmx512m -Djava.net.preferIPv4Stack=true"
default[:storm][:ui][:childopts] = "-Xmx512m -Djava.net.preferIPv4Stack=true"
Complete Vagrantfile
chef.add_recipe "java"
chef.add_recipe "storm::singlenode"
chef.json = {
:java => {
:oracle => {
"accept_oracle_download_terms" => true
},
:install_flavor => "openjdk",
:jdk_version => "7",
},
:storm => {
:deploy => {
:user => "storm",
:group => "storm",
},
:nimbus => {
:host => "localhost",
:childopts => "-Xmx128m",
},
:supervisor => {
:hosts => ["localhost"],
:childopts => "-Xmx128m",
},
:worker => {
:childopts => "-Xmx128m",
},
:ui => {
:childopts => "-Xmx128m",
},
},
}