In all this talk about Ansible, Puppet, Chef, I wonder why nobody mentions cfengine. When I explored configuration systems my conclusions were Ansible for small systems (<100 nodes) and cfengine3 for larger systems. cfengine has very little dependencies (no Python/Ruby/etc) and a solid theoretic foundation (Promise theory etc).