The dynamic server list in Capistrano using Chef
Capistrano is a remote server automation tool. It can be used to execute an arbitrary set of tasks on remote servers. It's primarily used for the purpose of remote deployments. As per their official documentation, Capistrano can be used to:
- Reliably deploy to any number of machines simultaneously, in the sequence of a rolling set
- Automate audits of any number of machines
- Script arbitrary workflows over SSH
Although Chef also provides a deploy resource, I personally prefer push-based deployment solutions such as Capistrano, as they provide more control and I can easily hook them up with a release management system to provide visibility.
Capistrano considers a list of servers as a role and it can either deploy to an individual host or an entire fleet. Usually, this list of servers is maintained in configuration files, or supplied as a command line option during execution. This works pretty well for environments where the total number of servers...