I have a cluster of several hundred nodes managed by Chef 0.10(.4) and a
private chef server. The cookbooks for this cluster are a jumbled, crufty
mess. I would like to take a stab at a clean slate with Chef 12.
My plan is to bring up a set of test nodes that represent all of the roles
we need to support using a new private chef (test) server to minimize the
impact of this experiment. But, assuming that impulse is not just
programmer hubris, we are going to need to eventually upgrade our current
server and clients.
I do not want to re-key hundreds of clients if I can help it, and the data
in the Chef 10 server is valuable, so I would like to upgrade in place if
possible. This means we will likely need to support both 10 & 12
simultaneously (though hopefully briefly as we roll through the fleet and
upgrade all of them). We are already using organizations to separate
testing environments and production on our cookbooks, so that cookbook
changes do not impact production until they have been vetted. But creating
a new organization for the upgraded clients still means we need to move
their node & client records to the new organization.
So, my questions are:
- First and foremost, is this upgrade path feasible?
- What are the perils of serving a Chef 12 client data from a Chef 10
- What are the perils of upgrading a Chef 10 server to Chef 12?
- Should I upgrade the server through Chef 11?
- What is the least painful way to upgrade the various clients while
keeping their keys & data?
- Am I going down a path that will lead to madness?
Any thoughts or guidance you might have on how to approach this would be