blog.bouah.net/content/posts/chef-series-0.md
Maxime “pep” Buquet 02357de288 Chef series 0 WIP
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2018-07-16 14:12:02 +01:00

2.2 KiB

title date author tags
Catching up with Chef 2018-08-31T12:00:00+01:00 pep.
Configuration Management
Chef
Collabora

When I arrived at Collabora, I was introduced to Chef. At the time I did know a bit of Ansible, that I had used here and there for personal projects. Both are configuration mangement systems.

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.