Ansible

Well, this is a love-hate-relationship. Ansible uses YAML, the assumption is, that it documents the target configuration and that Ansible is idempotent. As such Ansible should be able to reach the target configuration from any defined starting configuration.

In practice this is not always that straightforward.

Advantages of Ansible

Ansible works without an agent on the target system. Well, it needs python and uses ssh.

Issues with Ansible

Configuring packages is pretty easy: if you update a packages config files remain untouched. Now, consider unpacking a tar archive, config files will be overwritten. So … they will be have to get configured, again. The tragedy is that this even happens if you install the same version, over and over. The configuration is still idempotent, but highly inefficient.

Yes, there are simple ways around this: remove the config-files from the tar-archive. Copy them separately, job done.

Thoughts

I could imagine something more powerful based on TCL, but such a tool depends on massive amounts of libraries and I have no time to handle these. A pitty!

Featured posts