5 ms·
This post is ridiculous. A very valid complaint would be that Ansible isn't idempotent, which I think is what the author was trying to get at. Nixos would be a
by gecko 12y ago
This post is ridiculous.
A very valid complaint would be that Ansible isn't idempotent, which I think is what the author was trying to get at. Nixos would be a great example of an idempotent system, and you might be able to convince me that Docker would qualify, too. As much as I like Ansible, its lack of true idempotence is a weakness.
But that has nothing to do with yaml v. XML v. anything else. You could trivially write an idempotent description language in XML, and you can trivially write a horrible state-based system in a Haskell DSL or Prolog. As far as I can tell, the author is complaining that people think that Ansible is idempotent because it has yaml. That is incorrect, but I don't think that it'd be better or worse if they'd pick something else; merely more verbose. (Look at Maven and Gradle for an example.)
- dj-wonk 12y agoYes, the post is somewhat ridiculous. I can take the blame for that. Still, I think the choice of language for these tools matters a lot. With so many experiments in configuration tools, my goal was to raise the point in a light-hearted way. I'm really interested to see if or how a community with diverse preferences (developers and system administrators) might agree on a small number of configuration management tools. Or are we destined to have these tools splinter across languages?
- gecko 12y agoI doubt it, unfortunately. I think a Nixos-like approach is the closest you can get to having a single tool, simply because it's a fairly logical extension of apt/rpm/etc.-style systems, but its very operation makes it too alien for me to get it adopted anywhere. I currently suspect that a movement to more PaaS-like designs is actually going to be our saving grace, simply because it ought to take so much off the table. Then we can look at tools like Clojure, Haskell, Prolog, and other similar language concepts to try to tackle the other half of things.
- peteretep 12y ago> I think the choice of language for these tools matters > a lot I read the post, and still don't know _why_ you think it matters, when comparing two data-interchange languages.
- dj-wonk 12y agoI'm saying that using a data interchange language (whether it be XML or YAML) is no substitute for a programming language.
- dj-wonk 12y agoWhat I've watched and read, mostly from ansible.com, but also http://en.wikipedia.org/wiki/Ansible http://en.wikipedia.org/wiki/Ansible, suggests that Ansible is idempotent. What should I read that makes the opposite claim?
- gecko 12y agoThat's unfortunate. The presence of the command module alone ought to make it clear that's not true. I think Ansible aims to be more idempotenty than other environments, and I think it succeeds there. The lack of something like Chef databags helps, as does its insistence that $SCM is the source of truth. But it doesn't take a holistic enough stance to really get all the way there. It's very difficult to do things like handle the transition from one version of a play book to another sometimes; while running a given playbook on a given blank system may be idempotent, it can't actually reliably model state transitions. In other words, it's only got half of the puzzle.
- crdoconnor 12y agoIt aims to be idempotent, but the presence of things like the cmd module allows you to hack it in such a way that it isn't. This is why I don't use cmd in general, and if I do I try to make sure that it's an idempotent command.
- qntmfred 12y agoyou said idempotent 5 times fyi
- prutschman 12y agoThat's only a problem if "idempotent" is heterological.
- deleted 12y ago[deleted]