I've been looking around for tools to replace some legacy scripts for creating and maintaining accounts in a university computer lab ecosystem consisting of things like:

  • LDAP and Kerberos for authentication
  • User home storage and web pages
  • Entries on an SQL database
  • Printing quotas
  • Mailing lists, etc.

I'd also like to automate machine and VM membership for Kerberos and Puppet if possiible.

I've found Capistrano, and while the basic principle of running tasks on remote hosts through SSH seems to fit, and the DSL in Ruby looks quite nice, I've found most documentation is related to application deployment, not generic tasks. I'm also not aware of any good way to parameterize tasks so I can pass on the user information for creation.

Is something about Capistrano I am missing, or is it not the correct tool for this job? Are there any more userful alternatives?


Capistrano, as you've discovered, is primarily a deployment tool. What it sounds like you need is a configuration management tool. Puppet, Chef, Salt, and Ansible are all examples of CM tools. They ware all very capable products, but for your situation, I'd recommend you take a first look at Ansible.

All of these languages have some sort of declarative language with which you can describe the desired state of your systems. This functionality alone is fine for some workflows, but in some cases, you just want to have your CM run a set of commands sequentially. This is where Ansible excels - it allows you to declare configuration bits for parts of your system, and then specify shell commands to run as well.

One other huge benefit Ansible has over the other options is that the only requirement on the client side is a python interpreter and an ssh server that's it - no agent required.

  • I'm already using Puppet for managing node configuration, but it does not work well for managing data, mostly user stuff as I described. I'll definitely check out Ansible, thanks for the suggestion. – danielkza Oct 28 '13 at 3:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.