3 ms·
The real world tends to have a diversity of hosts and an automation system that only partially applies is in many ways worse than none at all. I ended up with
by VLM 9y ago
The real world tends to have a diversity of hosts and an automation system that only partially applies is in many ways worse than none at all.
I ended up with Ansible because it seems to require nothing on the far side but python2 and ssh. Everything else needed a specific version of a specific client software. CFEngine was particularly awful in a diverse setup, fighting SSL to make puppet work was never fun. I haven't found anything Ansible won't talk to, or can't be made to talk to eventually. I used Puppet for a bit less than a decade before switching to Ansible maybe two years ago, and I don't miss fighting its SSL at all. I miss when the puppetmaster would randomly crash and I'd find out when a deployment failed or worse failed partially, or when the puppetmaster process would take 5 minutes to start because, well, I donno why, but it sure was annoying.
One interesting anti-pattern I saw over the years was people using puppet (or ansible or otherwise) as the worlds weirdest version control system. You can git pull a release branch, or you can write 10K custom lines (no kidding) of automation software to replace one line of 'git pull'. Depends if you're paid by hour/LoC or not. The borderline between "this is managed with ansible/puppet/wtf" and "this is managed by living in a git repo" can be annoyingly fuzzy and going to either extreme doesn't turn out well...
- btown 9y agoThe funny thing is that with Docker builds, that anti-pattern is cool again. Why bother telling the remote to pull from Git when you can just push it an entire disk image that knows nothing about source control? Of course, those 10K lines are still there, they're just hidden by Docker abstractions :)