Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Little rack app that I use for testing out deployments
Ruby HTML

This branch is 33 commits ahead of smerritt:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
config
cookbooks
deploy
vendor/cache
.gitignore
Gemfile
Gemfile.lock
Procfile
README.md
Rakefile
config.ru

README.md

Rackapp

A simple rack-based application that has a few features.

Routes

Basic index:

GET /

Simple output:

GET /health

Random 500:

GET /flaky

Random sub-second sleep:

GET /pokey

Process and ENV Dump:

GET /check/dump

Custom chef

This repository has a set of custom cookbooks that modify your Engine Yard environment. Cookbooks are stored in the cookbooks directory of this app and are checked into git.

You can upload your cookbooks by running ey recipies upload -e <environment>

Once you have uploaded your recipes, you can apply them to the servers in your environment by running ey recipes apply -e <environment>.

For more information about custom chef, see our documentation.

Upload and apply configuration

Custom chef recipes are defined for this environment. To upload and apply these recipes run:

ey recipes upload -e <environment name>
ey recipes apply -e <environment name>

This will setup basic god monitoring.

Adding your monitored process

Create or modify your custom cookbook. See cookbooks/myapp directory for an example

Once you have added your monitored process, you should apply the cookbooks

Have your application cookbook drop a god configuration file in /etc/god/<filename>.rb. See cookbooks/myapp/recipes/default.rb in this repo

Working with god

god runs as root, so you should issue all commands as the either the root user or via sudo.

The custom cookbooks in this repo run god via init (/etc/inittab) and relevant logs go to /var/log/god.log and /root/god.log. By default, these cookbooks only install god on application servers (solo, app master and app slaves).

To check status:

$ sudo god status
api-workers:
  api-worker-1: up
$

To restart your process:

$ sudo god restart api-workers
Sending 'restart' command

The following watches were affected:
  api-worker-1
$

To stop monitoring a process:

$ sudo god unmonitor api-workers
Sending 'unmonitor' command

The following watches were affected:
  api-worker-1
$ sudo god status
api-workers:
  api-worker-1: unmonitored
$

To restart a process:

$ sudo god restart api-workers
Sending 'restart' command

The following watches were affected:
  api-worker-1
$

Additional God configuration and commands can be found at godrb.com.

Monitored processes and deploys

After a deploy, you will want to reload your monitored processes. You will need to add a deploy hook, which tells god to restart your processes. See deploy/after_restart.rb in this repo.

For more information about deploy hooks check out our documentation.

Remember, any changes to deploy hooks must be committed to your source repository and deployed to the environment.

Happy hacking!

Something went wrong with that request. Please try again.