(Last Updated On: October 31, 2018)

Chef is the leading open source continuous infrastructure and applications automation tool that takes you all the way from development to production. Our previous guide covered the installation of Chef Server on Ubuntu 18.04 LTS.

How to install Chef Automation Server on Ubuntu 18.04 LTS

This guide will focus on upgrading of already installed standalone Chef Server configuration. I’ll try to make a guide on the installation of Chef Automation server on a CentOS 7 machine.

Upgrading Chef Server

Follow our steps below to upgrade your Chef server to the latest release.

Step 1: Backup Chef Server Data

Run the following command to make sure all services are in a sane state and backup all Chef data.

$ chef-server-ctl reconfigure

Backup the data:

# chef-server-ctl backup --yes
Locating rsync..
/bin/rsync
Starting Chef Server backup
Bringing down the Chef Server
ok: down: bookshelf: 1s, normally up
ok: down: nginx: 0s, normally up
ok: down: oc_bifrost: 0s, normally up
ok: down: oc_id: 0s, normally up
ok: down: opscode-chef-mover: 302s, normally up
ok: down: opscode-erchef: 0s, normally up
ok: down: opscode-expander: 1s, normally up
ok: down: opscode-solr4: 0s, normally up
ok: down: rabbitmq: 0s, normally up
ok: down: redis_lb: 0s, normally up
Dumping Postgresql database to /tmp/chef_backup20181030-11018-1r60p82/chef_backup-2018-10-30-14-44-09.sql
could not change directory to "/tmp/d20181030-11018-1jnkroq": Permission denied
ok: down: postgresql: 0s, normally up
Writing backup manifest
Creating backup tarball
/opt/opscode/embedded/lib/ruby/gems/2.5.0/gems/mixlib-shellout-2.3.2/lib/mixlib/shellout/unix.rb:185: warning: conflicting chdir during another chdir block
tar: Removing leading `/' from member names
Bringing up the Chef Server
ok: run: bookshelf: (pid 11293) 0s
ok: run: nginx: (pid 11372) 1s
ok: run: oc_bifrost: (pid 11386) 1s
ok: run: oc_id: (pid 11467) 0s
ok: run: opscode-chef-mover: (pid 11482) 0s
ok: run: opscode-erchef: (pid 11559) 0s
ok: run: opscode-expander: (pid 11911) 0s
ok: run: opscode-solr4: (pid 12052) 0s
ok: run: postgresql: (pid 12090) 0s
ok: run: rabbitmq: (pid 11561) 13s
ok: run: redis_lb: (pid 12357) 1s
Exporting tarball to /var/opt/chef-backup
Cleaning up /tmp/chef_backup20181030-11018-1r60p82
Backup Complete!

Confirm backup file

# ls /var/opt/chef-backup/
chef-backup-2018-10-30-14-44-09.tgz

Step 2: Download and Upgrade Chef Server

Download the latest release of Chef server from the Official Downloads page. The example below downloads latest release of Chef for CentOS 7.

wget https://packages.chef.io/files/stable/chef-server/12.18.14/el/7/chef-server-core-12.18.14-1.el7.x86_64.rpm

After downloading the package, install it with your distribution package manager.

sudo yum localinstall <package.rpm>

For Ubuntu, use:

sudo dpkg -i  <package.deb>

Sample output:

Running transaction
  Updating   : chef-server-core-12.18.14-1.el7.x86_64 [######################################################                                   ] 1/  Updating   : chef-server-core-12.18.14-1.el7.x86_64 [#######################################################                                  ] 1/  Updating   : chef-server-core-12.18.14-1.el7.x86_64 [########################################################                                 ] 1/  Upda  Updating   : chef-server-core-12.18.14-1.el7.x86_64                                                                                             1/2 
You have upgraded Chef Server!
......
For detailed upgrade instructions please see:
https://docs.chef.io/upgrade_server.html
  Cleanup    : chef-server-core-12.17.33-1.el7.x86_64                                                                                             2/2 
warning: file /opt/opscode/embedded/service/oc_id/log/development.log: remove failed: No such file or directory
  Verifying  : chef-server-core-12.18.14-1.el7.x86_64                                                                                             1/2 
  Verifying  : chef-server-core-12.17.33-1.el7.x86_64    
Updated:
  chef-server-core.x86_64 0:12.18.14-1.el7
Complete!                                                                                  2/2

The next step in the upgrade process is to run:

$ sudo chef-server-ctl upgrade

After the upgrade command completes, your Chef services will remain in a down state. To bring them back up run:

$ sudo  sudo chef-server-ctl start
ok: run: bookshelf: (pid 14176) 1s
ok: run: nginx: (pid 14233) 0s
ok: run: oc_bifrost: (pid 14255) 1s
ok: run: oc_id: (pid 14289) 0s
ok: run: opscode-chef-mover: (pid 14332) 0s
ok: run: opscode-erchef: (pid 14335) 1s
ok: run: opscode-expander: (pid 14475) 0s
ok: run: opscode-solr4: (pid 14705) 0s
ok: run: postgresql: (pid 14145) 189s
ok: run: rabbitmq: (pid 14337) 1s
ok: run: redis_lb: (pid 15079) 1s

Finally, remove the configuration files, logs, directories, users, etc. that were used by internal services and have been removed from this version of Chef Server:

$ sudo chef-server-ctl cleanup

You can add the --no-op option to see what would be removed by this command. Also check: