Thursday, October 15, 2026

Step by Step Guide to Migrating Chef Infra Client 18 to 19 Using Azure DevOps Pipeline

Migrating from Chef Infra Client 18 to Chef Infra Client 19 is more than a simple version upgrade. With the transition from Omnibus to Habitat based packaging, a newer Ruby version, changes to installation paths, updated licensing requirements, the migration requires careful planning and compatibility checks. In this blog, we will explore the step by step approach to migrating safely using azure DevOps pipeline.

Prerequisites:

- Windows servers: The target Windows servers must have Chef Infra Client installed.

- Azure DevOps Deployment Group: Each target server must be registered with the appropriate Azure DevOps Deployment Group.

- Valid Chef License Key: Ensure a valid Chef License Key is available for downloading and installing Chef Infra Client 19.

- Chef Migration Tools: Ensure the required Chef migration tools, including migrate-ice, are available and configured.


Create an Azure DevOps pipeline using a Deployment Group job. Add the required configuration values as pipeline variables, as listed below.


migrationtool = migrate-ice-1.2.33-Windows-x86_64.zip

chefclient = chef-ice-19.3.15-20260519231711.tar.gz

In the first stage of the pipeline, we download Chef Infra Client 19 and the Chef migration tool to the target Windows servers (Chef nodes). To facilitate this process, the required installation packages are downloaded in advance from the official Chef portal and uploaded to Azure Blob Storage. During pipeline execution, these packages are downloaded from Blob Storage to the target Chef nodes for the migration process.

1. Download Migration Tool

$magic = "https://demo.blob.core.windows.net/installers/$(migrationtool)"
$outPath = "C:\temp\$(migrationtool)"
Invoke-WebRequest -Uri $magic -OutFile $outPath


2. Download Chef Client

$magic = "https://demo.blob.core.windows.net/installers/$(chefclient)"
$outPath = "C:\temp\$(chefclient)"
Invoke-WebRequest -Uri $magic -OutFile $outPath

3. Expand Migration Zip

cd C:\temp
$destination = "C:\migrate-tool"
if (-not (Test-Path $destination)) {
New-Item -Path $destination -ItemType Directory -Force | Out-Null
}

# Copy/move migration tool

Move-Item -Path "$(migrationtool)" `
-Destination "$destination" `
-Force

# Copy/move Chef ICE package

Move-Item -Path "$(chefclient)" `
-Destination "$destination" `
-Force
Set-Location $destination

# Extract migration tool

Expand-Archive -Path "$(migrationtool)" `
-DestinationPath "." `
-Force


4. Migrate Chef 18 to 19

cd C:\migrate-tool

.\migrate-ice apply airgap "C:\migrate-tool\$(chefclient)"

After migrating from Chef Infra Client 18 to 19 on a Windows server, the main change you will notice is the installation directory and the way Chef executables are exposed through the system PATH. 

New Installation directory: C:\hab\pkgs\chef\chef-infra-client\<version>\

Executables: C:\hab\pkgs\chef\chef-infra-client\<version>\bin

Executable access: Added to the system PATH by the installer







No comments:

Post a Comment