[TriLUG] Curious

Igor Partola igor at igorpartola.com
Sun Oct 26 23:58:23 EDT 2014


Puppet being morse code centric sounds about right. It is its own language, has its own client/server setup yet can be run without it, has a specific file layout you have to follow... It is confusing and weird. I use it because it gets the job done and because I have not yet figured out how to use Ansible :)

There are some great things about puppet:

 - Has basic built in types that are idempotent. This is huge. I don't want to reinvent this, and here Puppet delivers.

 - It supports the right built-in types: package, file, service, user, crontab.

 - Extensive library of good modules to control things like Postgres, Redis, MySQL, MongoDB, etc.

 - It works when done right.

The bad:

 - The language is confusing. Includes, imports, etc. suck. Creating dependence is confusing and can be repetitive.

 - It is much too slow for what it does. Basic package installation is done one at a time. Some really simple manifests that would take 5 seconds to run by hand, take minutes.

 - Too many obscure features. The docs literally have things like "we just released this feature, but don't use it. It's a bad idea."

 - Errors cascade, but there is now way to tell puppet to stop on errors. This way if installing MySQL fails, it will attempt to do other unrelated tasks instead of saying "ok fix the MySQL thing first ".

In conclusion, I am not converting any existing projects from Puppet to anything else, but I am looking at alternatives.

Igor


More information about the TriLUG mailing list