April 10, 2012
by Greg Divis
BuildMaster 3.1 is now in available and contains quite a few “under-the-hood” changes. For this release, our main focus has been on improving BuildMaster’s Agents.
An agent is simply what we call a server that BuildMaster is able to orchestrate in some way. In all versions of BuildMaster before 3.1, an agent was always implemented by a .NET-based SOAP web service manually installed on a server. Of course, this provides a great deal of flexibility in the types of actions that can be run on the server, but in practice we have found that many actions can be accomplished with simpler means.
Adding Abstraction
With 3.1, BuildMaster Agents are now extensible. This means that in addition to the SOAP agents (which will continue to work as they always have), we now have the capability to use other techniques to transparently run many actions on remote servers. For example, our Linux extension has been updated to included an SSH/SFTP based agent.
Configuring an SSH Agent
As the SSH-based agents are still considered an experimental feature, we have hidden them from the UI by default at this time. To enable them you will need to first install the Linux extension (v3.1 or newer), and set BuildMaster’s Feature Level to Highly Experimental. After doing so, you should see a new button on the Set-up Agents/External Servers option under Admin.

Here you must configure how BuildMaster will connect to the remove server. Currently, you may use simple user name/password or public/private key authentication. Additionally, you must provide a root path BuildMaster can use for temporary files. BuildMaster will create files and directories under this path for any actions that use default source/target directories or application-relative paths. Once you are satisfied with the configuration, click Save.
Using an SSH Agent
To use an SSH-based agent, you just need to select it like you would any other server in BuildMaster. For example, the Create File Action configured to run on the agent displayed in the previous screenshot might look like this:

We have already migrated many of the built-in actions to the new system, allowing them to run on new classes of agents (like SSH), but some have complex logic or are too platform-specific to run on anything but a hosted SOAP agent. As of release 3.1.0, the following actions will work with SSH agents:
- Create File
- Create Zip File
- Delete Files
- Transfer Files
- Unzip File
- Create Build Artifact
- Deploy Build Artifact
- Deploy Config File
- Execute Command Line
- Send Email
This list will continue to grow, but for now we’ve found that you can get pretty far using just these – Execute Command Line in particular can be used to leverage existing shell scripts.