Example of using rackbox, databox and knife-solo to provision a full-stack, rack-based web server.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.chef
cookbooks
data_bags
nodes
roles
site-cookbooks
.gitignore
Berksfile
Berksfile.lock
Gemfile
Gemfile.lock
README.md
Vagrantfile

README.md

Kitchen Example

An example of using rackbox & databox and knife-solo to provision a full-stack, rack-based web server.

How to build kitchen-example from scratch:

  1. Create Gemfile:

    source "https://rubygems.org"
    
    gem "knife-solo", "0.3.0pre3"
    gem "berkshelf"
    
  2. Create Berksfile:

    site :opscode
    
    cookbook "runit", "1.1.2"
    cookbook "databox"
    cookbook "rackbox"
    
  3. Install ruby gems

    bundle install
    
  4. Setup knife-solo directory structure

    bundle exec knife solo init .
    
  5. Copy the node config example

    curl https://raw.github.com/teohm/kitchen-example/master/nodes/host.json.example --output nodes/myhost.json
    

Provision rack-based server

git clone git://github.com/teohm/kitchen-example.git
cd kitchen-example

# install berkshelf, knife-solo
bundle install

# download cookbooks
bundle exec berks install -p cookbooks/

# copy & edit the node config
cp nodes/host.json.example testbox.json

# setup chef-solo on the node
bundle exec knife solo prepare testbox

# provision the node
bundle exec knife solo cook testbox

Deploy rails on unicorn

git clone git://github.com/teohm/sample-app1.git
cd sample-app1
bundle install
ssh testbox 
#
# in testbox, add SSH known host by running:
#    ssh git@github.com   
#
bundle exec cap deploy:setup
bundle exec cap deploy:migrations

Deploy rails on passenger

git clone git://github.com/teohm/sample-app2.git
cd sample-app2
bundle install
ssh testbox 
#
# in testbox, add SSH known host by running:
#    ssh git@github.com   
#
bundle exec cap deploy:setup
bundle exec cap deploy:migrations