Puppet and RunDeck


Recently unveiled is DTO’s RunDeck which, in their words, is:

RunDeck is open source software that helps you automate ad-hoc and routine procedures in data center or cloud environments. RunDeck provides a number of features that will alleviate time-consuming grunt work and make it easy for you to scale up your scripting efforts.

To function RunDeck requires a list of hosts to manage and execute commands on. One of the sources it can use for this list of hosts is a configuration management tool like Puppet. This weekend as a prototype I hacked up puppet-rundeck to integrate Puppet and RunDeck. Puppet acts as an “external node classifier” or Resource Model Provider in RunDeck-speak and returns a list of the available nodes (using Puppet’s stored configuration capability) in an XML format RunDeck can understand when a specific URL is visited. In RunDeck you specify this target URL in your project’s file and it is updated whenever you request. Hope someone finds it useful.

Feedback, ideas and additional features and code obviously most welcome.

UPDATE: I’ve added a quick little screen cast that shows you basically how the integration works.