Why use Chef/Puppet over shell scripts?
A domain-specific language makes a big difference in the amount of code you write. For example, you could argue that there’s not much difference between: chmod 640 /my/file and file { “/my/file”: mode => 640, } but there’s a great deal of difference between these: FILE=/my/file chmod 640 $FILE chown foo $FILE chgrp bar $FILE … Read more