Hi, I created simple tool that allows to configure small cluster.
It supports package installation, dependency resolving, versioning,
process management, deployment automation.
And, it provides handy abstraction over SSH and SFTP. For example, You
can copy project from local to remote by this command
project_dir = '~/my_app'.to_dir
remote_box = Box.new 'my_app.com' # it will use your id_rsa
deployment_dir = remote_box['/apps/my_apps']
project_dir.copy_to deployment_dir
and restart Thin by executing
deployment_dir.bash 'thin restart'
Here’s short article how to use it
And a little about the SSH/SFTP abstraction
Sources: