I mean, I have nothing against jinja2, and nothing against yaml, but trying to build a programming language by combining the two the way Ansible does is just evil...
It tricks you into using it like a programming language, and then you suffer because it's not a real programming language.
@Wolf480pl nothing is a real anything
@cadey I mean, it's not good at being a programming language. It's not expressive enough. It makes it hard to do anything slightly more complex than simple ifs and loops over statically configured lists.
@cadey if less is more, then Ansible is, at the same time, too expressive, and not expressive enough.
@Wolf480pl it's declarative, not expressive.
@cadey it's imperative
@Wolf480pl do not think of ansible's yaml as a programming language. It is there to describe configuration, but it's not imperative and it's not a "real programming" language (at least, no more than css)
@hiciu But it pretends to be one.
It has loops, ifs, and variables, and you can do all kinds of crazy stuff with those variables.
If set_fact didn't exist, then maybe I wouldn't try to use it as a programming language...
Also, whenever I try to use it as not-a-programming-language, I end up repeating myself a lot.
It's not a good declarative description of a machine's state either.
So my natural reflex is to build an abstraction on top, to avoid repeating myself.
@Wolf480pl I totally understand you. Ansible requires a different mindset. I kind of learned to enjoy it, but maybe that's just a stockholm syndrome.
@hiciu tbh, I believe I could come up with a better declarative language on top of Ansible. At least better for my usecase. Guess I should try the API sometime.
@Wolf480pl you can always use ansible's api or generate json, from real programming language, and feed that json to ansible as a playbook :)
@hiciu Yeah, maybe I should try that.
We are a cute and loving international community Ｏ(≧▽≦)Ｏ !