Automation

Upgrade Chef Infra Server to Latest Release

Chef Infra Server is the central hub in a Chef infrastructure – it stores cookbooks, node policies, and metadata for every managed node. Keeping it on the latest version ensures you get security patches, bug fixes, and compatibility with newer Chef Infra Client releases.

Original content from computingforgeeks.com - post 4403

This guide walks through upgrading Chef Infra Server to the latest release (15.10.x as of 2026) on supported Linux distributions including Ubuntu, RHEL, Rocky Linux, and Amazon Linux. The process is an in-place upgrade – install the new package over the existing one, then reconfigure. Note that Chef Infra Server (open source) is deprecated and reaches end of life in November 2026, with Chef 360 Platform as the recommended successor.

Prerequisites

Before starting the upgrade, confirm these requirements are met:

  • A running Chef Infra Server (version 12.17.15 or later can upgrade directly to the latest release – older versions require stepped upgrades)
  • Root or sudo access on the server
  • Supported OS: Ubuntu 20.04/22.04, RHEL 8/9, Rocky Linux 9, Amazon Linux 2/2023, or SLES 12/15
  • Ports 80 and 443 open on the firewall
  • Enough disk space for the backup (at least equal to current Chef data size)
  • A maintenance window – the server will be briefly unavailable during the upgrade
  • A working Chef Infra Server installation that passes chef-server-ctl status checks

Step 1: Check Current Chef Infra Server Version

Start by confirming the version you are currently running. This helps verify the upgrade path and gives you a baseline to compare against after the upgrade.

chef-server-ctl version

The output shows the installed Chef Infra Server version:

15.9.38

Also verify that all services are running properly before making any changes:

chef-server-ctl status

Every service should show run status. If any service is down, fix it before proceeding with the upgrade.

Step 2: Back Up Chef Infra Server

Always take a full backup before upgrading. The built-in backup command captures the PostgreSQL database, configuration, and all Chef data. The server goes offline briefly during the backup process.

chef-server-ctl backup

Backups are saved to /var/opt/chef-backup/ by default. You can specify a different location with the --dir flag:

chef-server-ctl backup --dir /backup/chef

Verify the backup file was created and note its path – you will need it if a rollback becomes necessary:

ls -lh /var/opt/chef-backup/

The backup file is a tar archive with a timestamp in its name. Copy it to a separate location (remote storage, NFS mount, or another server) for safety.

Step 3: Optimize the PostgreSQL Database

Before installing the new package, run a full vacuum on the embedded PostgreSQL database. This cleans up dead tuples and reclaims disk space, which makes the upgrade faster and reduces the chance of database issues.

sudo su - opscode-pgsql -s /bin/bash -c '/opt/opscode/embedded/bin/vacuumdb --all --full'

This command runs as the opscode-pgsql user (the embedded PostgreSQL service account) and performs a full vacuum on all databases. It may take a few minutes on large installations.

Step 4: Download the Latest Chef Infra Server Package

Download the latest Chef Infra Server package for your distribution from the official Chef downloads page. The current latest version is 15.10.91.

For Ubuntu/Debian systems:

wget https://packages.chef.io/files/stable/chef-server/15.10.91/ubuntu/22.04/chef-server-core_15.10.91-1_amd64.deb

For RHEL/Rocky Linux/Amazon Linux systems:

wget https://packages.chef.io/files/stable/chef-server/15.10.91/el/9/chef-server-core-15.10.91-1.el9.x86_64.rpm

Replace the URL with the correct package for your OS version. You can also download via the Chef community downloads portal if you prefer a browser-based download.

Step 5: Install the New Package (In-Place Upgrade)

Stop all Chef services before installing the new package. This prevents file conflicts and ensures a clean upgrade.

chef-server-ctl stop

Install the downloaded package over the existing installation. On Ubuntu/Debian:

dpkg -i chef-server-core_15.10.91-1_amd64.deb

On RHEL/Rocky Linux/Amazon Linux:

rpm -Uvh chef-server-core-15.10.91-1.el9.x86_64.rpm

The package installs new binaries and libraries under /opt/opscode/ while preserving your existing configuration in /etc/opscode/.

Step 6: Run Reconfigure to Complete the Upgrade

After installing the new package, run reconfigure. This applies database migrations, updates service configurations, restarts all components, and reindexes the search index. For Chef Infra Server 13 and later, you must accept the license agreement.

chef-server-ctl reconfigure

If you are upgrading from Chef Infra Server 12 to 13+, set the license acceptance flag:

chef-server-ctl reconfigure --chef-license=accept

Reconfigure takes a few minutes. It runs database schema migrations, regenerates configuration files, and restarts every Chef service. Expect some downtime during this phase – approximately 2 minutes per 1000 managed nodes for reindexing.

Step 7: Verify the Upgrade

Once reconfigure completes, verify the new version is installed:

chef-server-ctl version

The output should now show the new version number:

15.10.91

Check that all services are running:

chef-server-ctl status

All services should show run status with their PID and uptime. If any service shows down, check its logs:

chef-server-ctl tail nginx

Replace nginx with the name of the failing service. Common services include nginx, oc_bifrost, oc_erchef, opscode-solr4, and postgresql.

Run the built-in test suite to confirm the API is responding correctly:

chef-server-ctl test

This runs a series of API health checks. All tests should pass. If your Chef Knife is configured, also verify from your workstation that you can reach the server:

knife status

Step 8: Upgrade Chef Manage (Optional)

If you use Chef Manage (the web UI for Chef Server), upgrade it after the server upgrade. Chef Manage versions must match the Chef Infra Server major version.

Install the latest Chef Manage package. On Ubuntu/Debian:

dpkg -i chef-manage_latest_amd64.deb

On RHEL/Rocky Linux:

rpm -Uvh chef-manage-latest.x86_64.rpm

Then reconfigure Chef Manage:

chef-manage-ctl reconfigure

Access the web UI at https://your-chef-server/ to confirm it loads and shows the correct version.

Step 9: Upgrade Chef Infra Clients

After upgrading the server, upgrade the Chef Infra Client on your managed nodes. While newer server versions are generally backward-compatible with older clients, keeping clients current ensures you get bug fixes and new resource types.

Check the client version on a node:

chef-client --version

To upgrade clients across your fleet, you can use the knife ssh command from your Chef Workstation:

knife ssh 'name:*' 'curl -L https://omnitruck.chef.io/install.sh | sudo bash'

Alternatively, use Ansible or another orchestration tool to push client upgrades across multiple nodes in a controlled manner. Upgrade a small batch of nodes first, then expand once you confirm everything works.

Step 10: Rollback Procedure

If the upgrade fails or causes issues, restore from the backup taken in Step 2. First, install the previous version package (the one you had before the upgrade):

chef-server-ctl stop

Reinstall the previous version package (use dpkg -i or rpm -Uvh --oldpackage with the old package file). Then restore the backup:

chef-server-ctl restore /var/opt/chef-backup/chef-backup-2026-03-22-xxxxx.tgz

After restoration completes, run reconfigure and verify services:

chef-server-ctl reconfigure
chef-server-ctl status

The server should be back to its pre-upgrade state with all data intact. Test from your Chef Workstation to confirm connectivity.

Conclusion

The Chef Infra Server upgrade is a straightforward in-place process – back up, install the new package, reconfigure, and verify. The key is always having a tested backup before starting and validating every service after reconfigure completes.

For production environments, upgrade a test server first, keep the backup on separate storage, and schedule the maintenance window during low-traffic hours. Since Chef Infra Server (open source) is deprecated with end of life in November 2026, consider planning your migration path to Chef 360 Platform or an alternative configuration management tool.

Related Articles

Automation Install JFrog Artifactory on Ubuntu 22.04|20.04|18.04 Automation Set Up Kind Kubernetes with Nginx Ingress Using Terraform Kubernetes How to force delete a Kubernetes Namespace Terraform How To Provision VMs on oVirt / RHEV with Terraform

Leave a Comment

Press ESC to close