Import existed client, node to chef server

Once you migrated all nodes and their respective keys, the node by node migration is just updating their client.rb file to point to the new server (node attributes could become out of sync between the two servers, but unless you abuse normal levels attributes it should not be a problem).

The only point of attention when you have nodes on both server are:

  1. Uploading the new cookbooks to both chef servers.
  2. Register new nodes on the new chef-server as far as possible

The upload command won’t fail, but it will probably overwrite the existing nodes object, but as above, the only warning is about normal attributes which are part of the node object.

If you want to ensure a node by node update without loosing updated node attributes since the migration you can:

  1. knife node show <the node> -F json > <the node>.json agains the chef11 server
  2. knife node from file <the node>.json against the chef12 server

This will update the node object without touching the client key nor acl, so it should be ok.

Honestly I migrated my whole server and it’s 300 nodes in one shot, I had no real problem, just small outside cases on cookbooks with weird method in their metada.rb.

I started on an opensource chef-server 11.0.8, made a migration to 11.1.6 and then migrated to 12.2, my only drawbacks was on the cookbooks themselve, chef clients above 11.10 are ok with a chef-server 12.