The SSP gem provides various command line tools that we use internally. It might be useful to others as well, but we're not trying to make them general.

Available commands

This is an organized list of the same thing ssp list shows you. For more information on each command run ssp help commandname.

Run chef-client on a remote node or multiple nodes:

ssp chef:client [NODES...]

Download data bags from the chef server and upload local json files as data bags to the server. Looks for data bags in the ./databags directory by default.

Note: It is recommended to only do the download command once and then use your repo to store data bags and upload updates from it. This should be used with care though. We should find a better sync solution for this.

ssp bags:download
ssp bags:upload [BAG [ITEM]]

Server management commands

Create a new chef client on Rackspace. This will use your rackspace api key and username stored in your ~/.ssp file by default. The image used for the new node is a custom image on our CloudFiles account called chef-node.

ssp node:create FQDN [ROLES...]

List available servers on Rackspace:

ssp node:list

Create a new chef client on Vanilla (our Xen host machine):

ssp officenode:create FQDN [ROLES...] -i, --iplastpart=N

Remove a chef client while also destroying the Xen guest on Vanilla:

ssp officenode:destroy FQDN

List available servers on Vanilla:

ssp officenode:list

Utility commands

Pairing

Set the commit author for the repository to a pair or just to yourself:

ssp pair [PAIR]

Install a git pre-commit hook which checks commit author and email (only for interactive use):

ssp pair:install_hook

Displays current commit author and email and asks for confirmation (used by the installed hook):

ssp pair:status