On Ansible, part II: seems deterministic
OK, so I went out of my way to point out some shortcomings with Ansible. But after more experience with it, there are also good things to note about Ansible..
Ansible does what it promises
Once you get a playbook down, get the python-language and ansible modules installed correctly, the ssh connections configured, the optional ssh-agent working, ansible is a reliable way to get target infra up.
Ansible is deterministic
Assuming you are using the version of python you think you are, ansible just works. As ansible doesn't require anything to be installed on the target machines, it doesn't necessitate polluting your infra with extra packagtes or dependencies.
Ansible isn't super verbose
While playbooks bring quite a lot of implicit stuff, stuff one has to reason about oneself, they are not that tautonomic or verbose, compared to worst of infrra-automation scripts.
Ansible is not the worst out there
While random good bash scripts maybe better, bad bash scripts can be far, far worse. Unintelligible, leaving you guessing, when you just wanted to reproduce a machine for some infra-push..
In the end, Ansible brings reproducible infra as code
With some limitations to configuring and customizing, ansible playbooks seem reliable and bring reproducible results. This is what counts if you need to manage infra..
Ansible contributors deserve thanks
It has some warts, but after some months, I have grown sympathetic towards ansible project. In this respect, Ansible project also deserves a thank you, It is a mature software project that does what it promises.
Even if I'm still looking at the next shiny new things.