I've used Net::SSH::Perl with great success to run commands on remote Linux machines. To compile the required set of RPMs for this module took quite a while, but it was worth the effort.
You may also look at STAF. I believe it has a model that lets you execute jobs on remote machines.