6 ms·
As it happens, I moved from Ansible to Chef not too long ago as my provisioner of choice. It can be used with just SSH and Chef Zero (no need for a Chef Server
by bovermyer 6y ago
As it happens, I moved from Ansible to Chef not too long ago as my provisioner of choice.
It can be used with just SSH and Chef Zero (no need for a Chef Server), and it's built with Ruby and Chef's DSL and not YAML.
It took me several years to not hate Chef's approach, though, compared to the ease of use of Ansible.
- jitl 6y agoI much prefer the chef experience because I like Ruby - and I used Chef solo at Airbnb for years. However The fact that chef recipes are Ruby means that there’s no static analysis or interoperability available in Chef land. I can read and write Ansible playbooks in any language. Chef I can only use from Ruby. Migrating from Chef to XXX was an enormous pain. It’d be easier to migrate away from Ansible.
- busterarm 6y agoI won't provision anything unless it's with Terraform anymore. I use Ansible to build images and to configure (as in template configuration files in) newly provisioned systems after first boot-up and that's it. Everything's end-to-end automated after I ship my code and I don't have to worry about it. Systems don't get changed, they get rebuilt.
- bovermyer 6y agoYou are aware that Chef can be used in the same capacity with Terraform, right?
- busterarm 6y agoWell aware, but no one tool should have multiple responsibilities. Chef is primarily a configuration management tool and I keep that separate from a distinctly provisioning tool like Terraform. Terraform is declarative rather than procedural like Chef and that's far preferred when trying to define what you have. Terraform & Ansible don't require me to run a master server or have agents on every machine either. Use tools where they're strongest. We used to use Chef years ago and replaced it with Ansible and Terraform and have zero regrets at 10^4 nodes. We also use Terraform for managing CloudFlare and all sorts of other providers. It has been a dream. Ansible does less and less work as time goes on for us and as we've moved to semi-immutable infrastructure. If we need to change something about a system, we'd rather replace it.