Rundeck: An interesting job scheduling system

Run DeckRundeck is a system for creating, managing, and using IT automation processes. The main selling point of the system, according to its website, is the ability to provide processes in such a way that would allow SysAdmins and DevOps to delegate process execution to other people in the organization.

In order to facilitate process creation and delegation, Rundeck provides a friendly web-based UI as well as the ability to integrate it to various account management systems. Rundeck also allows to automate the registration of hosts for it to run jobs on, by integration with various configuration management and cloud infrastructure systems.

Rundeck`s approach of having a centralized server with a web-based UI provides some advantages over other automation systems such as Fabric and Ansible. The UI allows for easy discovery and use of available jobs as well as creation of new ones. The server model also allow one to fire a job and walk away instead of having to stare at the console until its done.

Rundeck`s default mode of operation is to trigger jobs on hosts by utilizing SSH. This makes it easy to get going, but not very scalable or secure in the long run. Fortunately, it can integrate with 3rd-party orchestration systems such as Salt and MCollective to delegate communications with hosts.

Rundeck’s job model unfortunately places some limitations on the complexity of jobs that can be created. The model assumes that all the steps in a job would be performed on each and every one of the hosts selected to execute it. This makes it difficult to create complex orchestration processes where a certain step need to be done on a certain host and then another needs to be done on a different host. Such processes can be implemented by creating jobs that invoke other jobs, but this makes creating complex work-flows cumbersome. It is also impossible to perform different steps in parallel.

Rundeck is a relatively young tool. It is improving quickly, and the road map looks very interesting. I think it may indeed become a useful tool in the arsenal of DevOps and SysAdmins.

2 thoughts on “Rundeck: An interesting job scheduling system

    • I’m not sure it supports integrating with Ansible, such integration did no exist when I wroth this post, but it is quite likely it was added since. Similar integration with Salt and Mcollective did exists as I stated in my post.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s