Take the 2-minute tour ×

A company that I'm contracting with has determined that they need to migrate their Chef (Open-Source Edition) instance to a new server.

They do not want to migrate to the Hosted platform.

I have not been able to find a guide for how to do this. Does anyone have guidance or experiences to share, or better yet, a Guide?

I have steps in mind for doing this, but I'm afraid that I'm going to miss something vital. Sadly, their Chef-Server is not managed via Chef...

share|improve this question
Are they just moving to different (new) hardware? Can you just make a system backup, and then restore? –  Zoredache Feb 24 '12 at 17:57
They are going to new hardware. I actually hadn't considered a backup/restore... Perhaps I'm overthinking the problem...? –  gWaldo Feb 24 '12 at 20:10
You'll have to decide if you are over-thinking. But if your goal is just to move to better/different hardware, then a backup/restore should be simple, and painless. There are several questions/answers on the site that describe how to move Linux to new hardware. –  Zoredache Feb 24 '12 at 20:13

2 Answers 2

up vote 3 down vote accepted

There is a short guide on OpsCode wiki which talks about it.


The CouchDB backup and restore is more preferred, as also backup and restores the validation.pem, webui.pem, etc.

Like all backup and recovery tasks, do a dry run before a final switch over.

share|improve this answer

For Chef Server 11, they switched from CouchDB to Postgres which rules out couchdump. chef_server_backup.rb has also been abandoned, but knife-backup can handle both 10 and 11.

If on both systems you have knife-backup installed and a knife user setup, you can

originalserver$ knife backup export -D ~/chef-backup/

Copy over ~/chef-backup/ to the new hosts and

newserver$ knife backup restore -D ~/chef-backup

Make sure to read the stipulations on knife-backup. Alternatively, you can also push it with multiple knife profiles. Also note when installing, if you're using knife from an omnibus package make sure to call the right instance of gem (/opt/chef(-server)?/embedded/bin/gem).

share|improve this answer

Your Answer


