Migration tool CLI reference
Syntax
The migrate-ice apply command upgrades or installs Chef Infra Client to version 19.
This command has the following basic syntax:
migrate-ice apply {airgap|online} [flags]
It supports two subcommands:
airgap: Uses pre-downloaded air-gapped bundles to install or upgrade Chef Infra Client .online: Uses network-connected resources to download and install Chef Infra Client .
Flags
--debug- Enable debug logs. Logs are available in
/var/log/chef19migrate.log. Valid values are:trueorfalse. --chef-version <VERSION>- Specify the Chef Infra Client version to download and install. Only applicable for online mode. The
--license-keyoption is required with--chef-version.The tool performs the following actions:
- Download: Automatically downloads the specified Chef Infra Client package from the official repository
- Validation: Checks version format and ensures it’s a supported Chef 19.x.x version
- Package Path: The downloaded package is stored at a predefined location for later use
- Skip Option: If
--chef-versionisn’t provided, the flag is skipped (useful when using--download-urlinstead)
Valid format:
19.x.x(for example,19.1.0,19.0.5)This flag is mutually exclusive with
--download-url. Use one or the other, not both. --download-url <URL>- Specify the Chef Infra Client download location.
--fresh-install- Whether to perform a fresh installation. Valid values are:
trueorfalse.Default value:
false. --fstab <option>- Remount Chef Infra Client from
/opt/chefto/hab. This maintains system integrity while transitioning from an Omnibus-based Infra Client installation to a Habitat-based setup.Flag not available on Windows.
Valid values:
apply: Performs the mount migration from/opt/chefto/hab. Default behavior.fail: Checks whether/opt/chefis already mounted and logs the result without performing the migration.ignore: Skips the mount migration check entirely.
Default value:
apply. --habitat- Install Chef Habitat along with Chef Infra Client.
--habitat-upgrade- Whether to upgrade Chef Habitat to the latest version.
Default value:
false. --help- CLI command help.
--license-key <key>- A Progress Chef License key for downloading Chef Infra Client.
--license-server <URL>- URL of the private or public Chef licensing service (optional).
--preserve-omnibus- Whether to preserve an existing Omnibus Chef Infra Client installation. Valid values are:
trueorfalse.Default value:
false. --process-config <option>- Analyzes the
client.rbconfig file to determine if it references the Omnibus-based Chef Infra Client installation (/opt/chef). This identifies potential conflicts when migrating to a Habitat-based setup.Valid values:
ignore: Skips the configuration check entirely.warn: Logs a warning if/opt/chefis found inclient.rbbut continues execution.error: Aborts execution if/opt/chefis found, preventing potential conflicts.
Default value:
error. --selinux-ignore-warnings- Ignore warnings related to SELinux handling.
--selinux-profile <option>- Install a default or custom SELinux profile.
Valid options:
defaultor<PROFILE_FILE_PATH>. --symlink- Replaces symbolic links to essential binaries—for example,
ruby,chef-client, andopenssl—from Omnibus-based to Habitat-based Chef Infra Client.This processes binaries in
/opt/chef/binand/opt/chef/embedded/bin. Each file within these directories is evaluated and if it’s an executable associated with Chef, the tool creates a symlink to the corresponding binary within Chef Habitat. If no equivalent is found in Habitat, the file is left unchanged.Flag not available on Windows.
Default value:
false.
Examples
Install Chef Infra Client
These examples show how to perform a fresh install of Chef Infra Client .
Install Chef Infra Client by specifying a download URL:
migrate-ice apply online --fresh-install --download-url "<DOWNLOAD_URL>" --license-key "<LICENSE_KEY>"
Replace:
<DOWNLOAD_URL>with the Chef Infra Client package download URL<LICENSE_KEY>with a valid Progress Chef License key
Install Chef Infra Client in an online environment by specifying a version number:
migrate-ice apply online --fresh-install --chef-version <VERSION> --license-key "<LICENSE_KEY>"
Replace:
<LICENSE_KEY>with a valid Progress Chef License key<VERSION>the full three-part Chef Infra Client version number (for example,19.1.0)
Upgrade Chef Infra Client
These examples show how to upgrade Chef Infra Client to version 19 RC3 from an earlier version.
Standard online upgrade:
migrate-ice apply online --download-url "<DOWNLOAD_URL>" --license-key "<LICENSE_KEY>"
Standard air-gapped upgrade:
migrate-ice apply airgap </PATH/TO/BUNDLE> --license-key "<LICENSE_KEY>"
Manage Omnibus-based Chef Infra Client
Preserve an Omnibus-based Chef Infra Client installation:
migrate-ice apply {airgap|online} --license-key "<LICENSE_KEY>" --preserve-omnibus
Log a warning if the client.rb config file references the Omnibus-based Chef Infra Client installation (/opt/chef):
migrate-ice apply {airgap|online} --license-key "<LICENSE_KEY>" --process-config warn
Replace the existing Omnibus-based Chef binaries (for example, ruby, chef-client, and openssl) with symbolic links pointing to their Habitat-based equivalents.
migrate-ice apply {airgap|online} --license-key "<LICENSE_KEY>" --preserve-omnibus --symlink
Remount Chef Infra Client from /opt/chef to /hab:
migrate-ice apply {airgap|online} --license-key "<LICENSE_KEY>" --fstab apply
Abort the migration process if /opt/chef is already mounted:
migrate-ice apply {airgap|online} --license-key "<LICENSE_KEY>" --fstab fail
Manage Chef Habitat
Upgrade Chef Habitat while installing Chef Infra Client:
migrate-ice apply {airgap|online} --license-key "<LICENSE_KEY>" --habitat-upgrade
SELinux profiles
Install the default SELinux profile:
migrate-ice apply {airgap|online} --license-key "<LICENSE_KEY>" --selinux-profile default --selinux-ignore-warnings
Install a custom SELinux profile:
migrate-ice apply {airgap|online} --license-key "<LICENSE_KEY>" --selinux-profile <PATH/TO/CUSTOM/PROFILE>