Hacker News new | ask | show | jobs
by VWWHFSfQ 1506 days ago
I didn't look too closely at this but Ansible offers a number of guarantees such as idempotency, locking, etc. If this thing is just people wrapping their shell scripts in on of the functions this thing executes then it's automatically worse than just using Ansible. Because nobody is going to care to make their script...good.
2 comments

>Ansible offers a number of guarantees such as idempotency,

You can wrap anything in ansible basically, including stuff that isn't idempotent.

Some of their modules are definitely conducive towards achieving it though.

my experience with ansible is that it offers a suggestion of idempotency, but there's always plenty of room to ignore the best practices.

IMHO it's better to have no guarantee than a vague suggestion that you might tend to rely on but then be bitten because there's nothing actually enforcing the guarantee.

I'm pretty sure that all of Ansible's core builtins guarantee idempotency
The core builtins help you to write idempotent playbooks, but it is far from a guarantee.

One simple example would just be to use the command task, which executes an arbitrary command. You, the developer, are responsible for telling Ansible how that should be made idempotent.

Right but no configuration system can do this. Puppet straight up tends to lie about what it can do with operations named things like "ensure" which play with language to make it feel like there's not actually a procedural, stateful system there (at least based on the number of people who have gushed at me about puppet while not using it).

It's akin to "unsafe" in Rust and ansible does warn you it's a bad idea unless you really need it.