An open API service indexing awesome lists of open source software.

https://github.com/teohm/kitchen-example

Example of using rackbox, databox and knife-solo to provision a full-stack, rack-based web server.
https://github.com/teohm/kitchen-example

Last synced: about 1 year ago
JSON representation

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

Awesome Lists containing this project

README

          

Kitchen Example
===============

An example of using
[`rackbox`](https://github.com/teohm/rackbox-cookbook) &
[`databox`](https://github.com/teohm/databox-cookbook) 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
```