This is quite a stretch to call Ansible, which consists of YAML files with syntactic sugar and some light Python evaluation, 'Lisp'.<p>I thought reading the article would make less inflammatory but it didn't.
Not everything that can be represented with s-expressions is a lisp. For example:<p><pre><code> (html
(body
(h1 "Hello, World!")))
</code></pre>
This does not mean that HTML is a lisp.
Actually, ansible is a prolog. I played around with marelle[1] a bit for managing my Mac configuration and I realized that the core of the typical configuration management tool just is a prolog: it gathers facts from the systems you have, compares them with a desired state you’ve specified declaratively and executes a plan to get from the current state to the specified one. Prolog does the planning more or less “for free” because of its evaluation model.<p>[1]: <a href="https://github.com/larsyencken/marelle">https://github.com/larsyencken/marelle</a>
Those are 2 lisp tools not unlike Ansible:<p>* [Consfigurator](<a href="https://spwhitton.name/tech/code/consfigurator/" rel="nofollow">https://spwhitton.name/tech/code/consfigurator/</a>) - Lisp declarative configuration management system. You can use it to configure hosts as root, deploy services as unprivileged users, build and deploy containers, and produce disc images. [GPL3][2].<p>* [cl-unix-cybernetics](<a href="https://github.com/cl-unix-cybernetics/cl-unix-cybernetics">https://github.com/cl-unix-cybernetics/cl-unix-cybernetics</a>) (previously Adams) - UNIX system administration in Common Lisp. Not unlike Ansible, Chef or Puppet. [ISC][22].
- You describe your systems (hosts) using resources having properties. The properties are then probed and synchronized using only /bin/sh on the remote host, and /usr/bin/ssh on the control host.<p>(awesome-cl)
Bash is a Lisp, too.<p><a href="https://blog.danieljanus.pl/2014/05/20/you-already-use-lisp-syntax/" rel="nofollow">https://blog.danieljanus.pl/2014/05/20/you-already-use-lisp-...</a>
I thought this was going to be a python thing that exploited functions returning functions with their lexical scope. I find too many syntactical macros tends to encourage excessively dense code. Tho I usually use packer and terraform to configure my end VMs not ansible. A PR to either packer repo or territory repo and push the button to recreate the resources.
See also <a href="https://en.m.wikipedia.org/wiki/Greenspun%27s_tenth_rule" rel="nofollow">https://en.m.wikipedia.org/wiki/Greenspun%27s_tenth_rule</a><p>"Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp."