views:

131

answers:

2

Is there a utility/library that facilitates the coordination of tasks between multiple servers? For me, I need to run scheduled tasks, copy lots of data between servers, and restart processes (a series of dependent operations that occur on different machines in a cluster).

I can go with cronjobs and batch scripts, although I can't help thinking that there's a more robust and elegant way of going about this.

+1  A: 

Capistrano is a tool for automating tasks across servers, it does exactly what you ask. It's written in Ruby and uses SSH to communicate with the other machines.

seanhodges
+1  A: 

As mentioned, Capistrano can be used to automate tasks. It was originally written to deploy Rails applications consistently, but it has become a very robust sysadmin tool. It is generally best for adhoc one time commands and application deployments though. If you need multiple systems managed with a consistent configuration tool, I suggest Puppet.

We use Puppet to manage overall system configuration for Rails, Django and PHP based web/db/app servers, and we use Capistrano for application deployments and single commands (like running Puppet after a config change).

jtimberman