In what way is attribute precedence over-engineered?  You can ignore most of it for most cases and just use default for everything, but when you need it, it&#x27;s there for you.  I don&#x27;t see how it&#x27;s more or less simple than what Ansible has defined: <a href="http:&#x2F;&#x2F;docs.ansible.com&#x2F;ansible&#x2F;playbooks_variables.html#variable-precedence-where-should-i-put-a-variable" rel="nofollow">http:&#x2F;&#x2F;docs.ansible.com&#x2F;ansible&#x2F;playbooks_variables.html#var...</a>.  I count 16 precedence rules in Ansible 2.0.<p>Every time a new configuration management utility comes out, everyone loves it because of it&#x27;s simplicity or some arbitrary measure of &quot;lightweight,&quot; but once Systems Engineers need to solve real automation problems in the real world, they start adopting features to work around the illusion of being &quot;lightweight.&quot;<p>I like Ansible for automating my home network where I have simple problems and no need for environment separation.  For professional work, I stick with Chef or Puppet.