3 ms·
I am moving away from Chef towards Ansible. Chef even now lacks a good ad-hoc mode that makes it easy to run one liners. Little info on Puppet. Do know that Pu
by csdreamer7 7y ago
I am moving away from Chef towards Ansible.
Chef even now lacks a good ad-hoc mode that makes it easy to run one liners. Little info on Puppet. Do know that Puppet uses a separate tool called Bolt for ad hoc commands, while Ansible has it built in.
Chef really tries to force you to use their Chef server to really run anything. If you just want to provision a single server you needed to use an unofficial tool, knife-solo, which isn't supported anymore or chef-zero, the new tool, which lacks documentation. (So does knife-solo, but I got it to work.).
The binary builds of Chef now require an EULA license agreement to use run it. Even thou the open source version is under Apache2. The annoying part is you have to place a file on every machine to keep running it. This is also not documented properly.
Bad documentation was something I was hoping Chef had gotten over a long time ago.
Some resources of Chef just do not work as documented and I end up using manual execute commands while Ansible's providers usually consistently works. Ansible documents which providers are by the community (and are included in the main package) and which are maintained by the Ansible team and are guaranteed to have a stable API. Something I really appreciate and gives me confidence in my Ansible scripts. Ansible also a Docker provider.
Chef also really requires you to use a Ruby gem manager which is a hassle if you are not using Ruby right now. Since I have stopped using Ruby it is a lot easier to just 'sudo apt install ansible'.
My biggest issue with Ansible is that the error messages can be very poor.
Take the snap provider for example. The older version on Ubuntu 18.04 does not support the later snap provider in later version of Ansible that my dotfile manager uses. This by itself is a small issue, but the error message it gives is very makes you think you have a syntax issue with an unrelated part rather than an undocumented keyword.