Skip to content

13steinj/rollingpin

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Rolling Pin

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.

About

fast deploy to lots of servers

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%