Have a complicated deploy process? Want to simplify and standardize? Assembla has just released a new beta tool, the SSH Tool. It allows you to run any command remotely on a server straight from Assembla. The script can be run manually, based on time frequency, or triggered by a repository event. This allows you to setup deploy scripts, then deploy with one click - no matter how complicated your deploy is. We use it internally to deploy assembla.com and to manage our servers.
The possibilities are limitless with the SSH Tool, you can provision AWS servers, kick off Continuous Integration processes, and run deploys to any environment. What is extra nice is that you have a centralized place to review and monitor these processes as they run. For example, Assembla has one script that lists all the current Staging environments running on AWS, very useful when trying to find an IP address of a Staging server.
Self Documenting & Traceable
You no longer need to ask how the process ran, its always available to you in your space as the output to the process. This is invaluable for a remote team where people can seemingly disappear without cause or reason.
The output of each run is stored and available in your SSH Tool. This allows you to easily see the last action run for a script. There is no question whether someone remembered to run a script or not, you can see it in the Tool. When using it as a deploy tool, you can see the last time that you deployed to Production or to your Staging environments.
Too often, I find that one operations person does something different than another operations person; this leads to confusion and non-standard practices. By giving people a button to press, the script is always run the same way and you can expect the same results and setup each time. This is invaluable when doing common work in Production. For Assembla, it has allowed us to move the deploy process from Operations to our Developers. Now Developers are free to Deploy to Production whenever they see fit.
So how does it all work? Well, you upload an RSA key that we generate to your ssh account on the remote server. There is only one key, because you only need one key to identify the SSH Tool. We provide you the key to ensure that the key is not used anywhere else.
Once the key is in place, it's just as if you were ssh’ing to the server and running commands, any commands. The output will be relayed back to the tool and stored for your convenience. The result of the script run is determined by the last result returned to the process, if its a 0 - success, if > 0 failure.
We suggest that you run your scripts with nohup on a unix/linux system, just in case the process has a network failure and loses a connection. Nohup will ensure that the process continues running even if the Assembla connection goes down. Screen is another alternative.
That’s it, so go out and start running commands on your servers right from the Assembla workspace. Please let us know what you think about this simple, yet powerful tool.
Thank you Artiom Diomin, Stanislav Kolotinskiy, Ghislaine Guerin for your work on getting this tool out to the community.
Get this and many other features for free with Assembla Renzoku