@hakan_geijer yeah I wish ansible was faster but it's great for this scenario. @foolishowl
and you can use "ansible vault" to encrypt a lot of the stuff you obv don't want in plaintext in git. So when you provision it uses the vault key to decrypt on the fly and you can commit the encrypted version in git. Definitely a useful way to handle sensitive config file info (I put even ssh pubkeys in this category). Makes stuff like firewall setup, web server config, user management, ssh hardening / config, etc nicely abstracted and readily reproducible.
The other configuration management tools (chef, puppet, etc) have major drawbacks and a lot more complexity, so +1 to learning ansible for this