Chef cookbook to deploy a Rack based Ruby web application (Rails, Sinatra, etc) with Passenger standalone.
Pretty straightforward, this cookbook only has one required attribute. Specify ['passenger']['git_repo']
pointing to your git repository (with the .git
on the end) and call the default recipe to run your app with passenger standalone.
This cookbook depends on the build-essential
cookbook, which generally requires that apt-get update
is run. build-essential
provides this note:
Note for Debian platform family: On Debian platform-family systems, it is recommended that
apt-get update
be run, to ensure that the package cache is updated. It's not in the scope of this cookbook to do that, as it can create a duplicate resource. We recommend using the apt cookbook to do this.
This cookbook also creates a Passengerfile.json
using the attributes under
['passenger']['passengerfile']
. Refer to the
Passengerfile.json
reference
and the attributes directory for help with these attributes.
Chefspec unit tests and Test Kitchen integration tests are run on all pushes to GitHub by Travis CI.
# install gem dependencies
bundle
# unit tests
bundle exec rspec
# integration tests with kitchen-vagrant
bundle exec kitchen test
Test Kitchen integration tests are on Travis CI use Docker via kitchen-docker. If you'd like to use Docker to run Test Kitchen integration tests locally:
# Ensure docker is running first
# On Mac OS X you may need to have sudo commands available with no password,
# the easiest way to do this is run a command as sudo so the next command won't prompt
# for a password
sudo ls
# Run Test Kitchen integration tests with docker (uses concurrency)
bundle exec rake integration:docker
Big thanks to https://github.com/zuazo/kitchen-in-travis for the Travis / Test Kitchen guide
Enhancements and bug fixes are appreciated! Remember, this cookbook is designed to be simple.
- Fork the repo
- Create a feature or fix branch with an intuitive name (
fix/some-bug
,feat/some-feature
) - Add relevant tests (kitchen, chefspec, etc)
- Create a pull request back to this repo
This cookbook is available in the community Chef Supermarket. To push new versions:
bundle install --binstubs
# make changes
# update metadata version
git commit -am 'some fixes'
git push
# tag and push to supermarket
bin/stove