--- title: "Catching up with Chef" date: 2018-08-31T12:00:00+01:00 author: "pep." tags: [Configuration Management, Chef, Collabora] --- When I arrived at [Collabora][0], I was introduced to [Chef][1]. At the time I did know a bit of [Ansible][2], that I had used here and there for personal projects. Both are [configuration mangement systems][3]. [0]: https://collabora.com [1]: https://chef.io [2]: https://ansible.com [3]: https://en.wikipedia.org/wiki/Configuration_management Every company has a technical debt lurking around the corner, and for us it was, and still is the case with our so-called Chef _cookbooks_, and _recipes_. To place this beginning of a rant in context, at Collabora we use Debian extensively. We employ a fair number of Debian Developers, and it is not uncommon to have debianisms taken for granted internally. At the time, Jessie was still stable, and had (has) _chef 11.12.8-2_, Stretch arrived a few months later, with _chef 12.14.60-2_ packaged. The server part of chef is not packaged, but there is an alternative implementation called _goiardi_ that we use. It plans to implement chef-server 12 when reaching 1.0. Meanwhile, the official project has released _chef 14.3.42_, and _chef-server 12.17.69_ at the time of writing, with plenty of new features, but also bug fixes, that I would love to be able to benefit from. To add to this, we do not test our cookbooks automatically, and the only viable way to test changes is to actually deploy them and run the client. Good fun. We use a client/server architecture. We don't use chef-zero. _why?_ --- I'm going to fix a few objectives to myself to: - update at least the chef-client that we use on stretch - get rid of jessies - setup test with CI on gitlab And report all that. ## Objectives I already started cleaning up the repository: > added lines: 10712 removed lines: 26589 total lines: -15877 I was the one to commit most of the cookbooks when I arrived, because they weren't versioned, which explains the huge number of added lines. --- I am not going to release all sources for what I do unfortunately, but I will try to detail the steps of how I did it for each part of the objectives.