Upgrade Gateway
This topic describes how to upgrade Itential Gateway to a new version.
Most Gateway upgrades follow the same general process: specify the version you want to install, provide your registry credentials, and run pip3 install --upgrade. The general process involves:
- Specify the appropriate upgrade version.
- Specify the registry credentials to collect the package.
- Use
pip3 install --upgradewith the appropriate pip/Python versions for your intended installation.
If you’re upgrading from Gateway 4.3 to Gateway 4.4, see Upgrade to Gateway 4.4 first. That upgrade includes a Python runtime change and requires additional steps beyond the general process described above.
Upgrade to Gateway 4.4
Gateway 4.4 upgrades the underlying Python runtime from 3.9 to 3.12 to resolve critical and high severity vulnerabilities in Gateway 4.3’s Python dependencies. Because this is a major runtime change, the 4.3-to-4.4 upgrade works differently than the routine pip3 install --upgrade process.
- Container-based deployments: The Python version updates automatically within the distributed container. No manual action is required.
- VM-based deployments: You must install Python 3.12 on your host server and recreate your Gateway virtual environment (VENV) as part of the upgrade.
Once you’re running Gateway 4.4, subsequent 4.4.x maintenance releases use the standard pip3 install --upgrade process described in Software repository and registry credentials.
Custom scripts may break after this upgrade
Custom scripts that share the same global Python environment and library dependencies as Gateway may stop working after you upgrade to Python 3.12. Scripts that already run in their own separate virtual environment shouldn’t be affected. Run custom scripts in a dedicated virtual environment, separate from Gateway’s, to avoid dependency conflicts. For more information, see Python virtual environments.
Note
The name of the Gateway virtual environment differs between the two install methods: manual installs use .venv, while deployer installs use venv (no leading dot). The manual upgrade steps below are written for a .venv environment. You may need to adjust the steps to use a different python virtual environment depending on how Gateway was originally installed.
Recommended: Upgrade with the Gateway deployer
The Gateway deployer automates the 4.3-to-4.4 upgrade for VM-based deployments, including installing Python 3.12 and recreating your virtual environment. We recommend the deployer as the primary upgrade method for most customers.
Deployer version 4.2 or later is required to upgrade to Gateway 4.4.
For more information, see the Itential deployer documentation.
Manual upgrade for VM-based deployments
If you originally installed Gateway manually, use the following steps to upgrade your VM-based Gateway 4.3 instance to Gateway 4.4. These steps assume a RHEL-based operating system (for example, Rocky Linux) using dnf, and a virtual environment named .venv. Adjust the package manager commands if you’re running a different operating system.
Replace all <placeholder> values below with the details for your environment before running these commands.
-
Transfer the Gateway 4.4
.whlfile to your Gateway server: -
Log in to the Gateway server:
-
Switch to the root user:
-
Change to the Gateway installation directory:
-
Back up your current Python 3.9 virtual environment by freezing its installed packages:
-
Leave the current virtual environment:
-
Stop the Gateway service:
-
Install Python 3.12:
-
Delete the old Python 3.9 virtual environment:
-
Create a new virtual environment using Python 3.12:
-
Activate the new virtual environment:
-
Install the Gateway 4.4
.whlfile: -
Check the Gateway service file for any hardcoded
python3.9paths, and update them topython3.12. Not every environment has hardcoded paths in the service file, so treat this as a check rather than a required change.Environment variables such as
ANSIBLE_PYTHON_INTERPRETERandPYTHONPATHare the most common places this occurs: -
Start the Gateway service and confirm it’s running:
After upgrading: check for hardcoded Ansible paths
Check for hardcoded Python 3.9 paths in your Ansible configuration
If your Ansible Module Paths or Collection Paths (Configuration > Automation Gateway > Ansible) reference the virtual environment directly, for example /opt/automation-gateway/.venv/lib/python3.9/site-packages/..., they’ll point to a version of Python that no longer exists after the upgrade. Update any hardcoded python3.9 paths to python3.12 so Ansible can continue to locate its modules and collections. Check this whether you upgraded using the deployer or the manual procedure.
Software repository and registry credentials
Customer accounts are assigned to one of two software repositories: Nexus or JFrog. Customers are informed which repository their account is assigned to in a welcome email that is sent once customer access is granted to the Itential software.
To ensure the Gateway upgrade reflects the correct REGISTRY_URL for your assigned software repository, use the applicable set of instructions presented below.
Customer accounts assigned to JFrog
Run this script to upgrade if assigned to the JFrog repository.
Upgrade output example (JFrog)
The output of the above commands should roughly match the following code block for customers assigned to JFrog.
Customer accounts assigned to Nexus
Run this script to upgrade if assigned to the Nexus repository.
Upgrade output example (Nexus)
The output of the above commands should roughly match the following code block for customers assigned to Nexus.