A tool for rolling changes out to servers.
To roll stuff out, select a group of hosts to affect:
- a master list of hosts is collected by the "host source" which is pluggable.
- aliased hostname glob expressions specify which hosts to pay attention to (
-h
) - the list may be truncated by starting after (
--startat
) or stopping before (--stopbefore
) specified hosts
And what commands you'd like to run:
- components to deploy get built on configurable build servers then deployed to
individual hosts (
-d
) - restart services (
-r
) - arbitrary other commands may be specified as long as the remote end knows how
to execute them (
-c
)
The rollout will then begin:
- rollouts are executed by the "transport" which is pluggable and defaults to ssh.
- hosts are "enqueued" one at a time with an optional delay between them
(
--sleeptime
) - multiple hosts can be worked on in parallel (
--parallel
) - after a number of hosts have completed their work, the rollout can pause to
allow sanity checking before continuing on (
--pauseafter
)
If configured, graphite will be sent a metric of the form
events.deploy.{component}
for each component deployed.
The rolling pin also features integration with Harold.
See example.ini for configuration instructions.