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.
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 statuschecks
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.