From Salt to Ansible


I've been using Salt mainly for local environment configuration - dotfile and config management. After almost 5 years of use I started to notice that Arch Linux Salt package is becoming less and less stable. I assume that the cause was overall project complexity resulted in higher maintenance burden.

It was time for changes.

I needed reliable and battle-tested solution. In my eyes the choice was obvious. After a bit of research Ansible seemed to fit the role.

Some observations

  • there seem to be general consensus that ansible is slower than Salt, but I noticed the opposite for local (and not only) usage
  • it personally feels more "graspable" than Salt
  • much more web content regarding ansible (stack overflow, blog posts etc), which can be seen as double-edged sword (outdated info), but most of the technlogical assumptions stood the test of time
  • better suited for single host/local tasks - no need to configure local Salt minion/master
  • ansible-lint is beautiful
  • ansible-playbook --check feels better than salt --test=true
  • output is much better in ansible (information flowing constantly) than in Salt (only after failure or full completion)
  • ansible feels faster than Salt

There is one other thing. Ansible documentation is one of the best I've ever read, mostly due to great structure and fantastically clear and simple examples. Truly outstanding. Whereas Salt docs even after years of usage feels foreign to me.