This guide is for the installation methods supported by Opscode (RubyGems and Debian packages).
Though it is a smoother transition than from 0.7 to 0.8, upgrading from 0.8 to 0.9 must be done lock-step. That is, 0.8 client and server are incompatible with 0.9 client and server.
New configuration values available:
- sandbox_path - /var/chef/sandboxes
- checksum_path - /var/chef/checksums
These are for the new cookbook upload process to the Chef Server. You will need to re-upload your cookbooks to the Chef server using Knife.
With that in mind, the basic upgrade process for chef-server is described below. As always, remember to make backups and try the upgrade in a test environment first.
Stop Server Services
The deb packaging will stop the services for you. If you're using the RubyGems installation, you'll need to stop the services the server runs manually.
Make sure the 'merb' processes for the chef-server and chef-server-webui are no longer running. They will look like this when running (port 4000 is the chef-server, port 4040 is the chef-server-webui):
Upgrade Chef Server
For RubyGems installation:
Note that the 'chef-server' gem depends on chef-solr, chef-server-api and chef-server-webui. If you do not want the webui:
For a Debian/Ubuntu installation:
Modify /etc/chef/server.rb
If you wish to use non-default values for sandbox_path and checksum_path, edit the server configuration file (server.rb). If you are using the Chef cookbook to manage this, update the template.
The Debian packaging already handles this for you.
Restart the Services
This is handled by the deb packaging for you.
Re-upload all cookbooks.
You need to upload all the cookbooks. If your chef-repo is on the same system as the chef-server, then simply run:
From the directory where your chef-repo is. If your chef-repo is on a different system such as your local workstation, then upgrade the Chef gem and run the knife command above.
Upgrade Clients
Upgrading the clients can now be done. Simply install the new gem and restart the chef-client service.
Debian packaging; the service will be stopped and started for you.
1 Comment
comments.show.hideSep 13, 2010
Robert J. Berger
Looks like if you upgrade from 0.8.16 to 0.9.8 you need to do the knife cookbook upload -a twice. The first time does not properly load cookbooks in your site-cookbooks directory that have the same name as a cookbook in the cookbooks directory. (I believe this is CHEF-1571, which is fixed in 0.9.10)
And as far as I can tell, you must also make sure that any cookbook in your site-cookbooks has a version number in its metadata.rb that is greater than the one in the coobooks directory.