> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.itential.com/itential-gateway/4/offline-installation-method/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.itential.com/_mcp/server. # Offline installation method > How to perform an offline install of Itential Gateway on systems disconnected from the internet. The following instructions explain how to perform an offline install of Itential Gateway. Use this process when the target system is disconnected from the internet. More information on download distribution is available in the [pip download](https://pip.pypa.io/en/stable/cli/pip_download/) reference guide. > **Info** > > Refer to the [Gateway system requirements](/itential-gateway/4/system-requirements) page for information regarding the software repository and registry credentials that can be used with the various Gateway installation methods. ## Prepare PIP packages #### Download packages on an internet-connected VM Run the following to download packages from a VM **with internet access** of the same OS and Python version (Gateway requires Python 3) as the target system. ```bash echo "## CUSTOMIZE THESE VARIABLES BEFORE RUNNING THIS SCRIPT: ##" && \ export AUTOMATION_GATEWAY_VERSION="" && \ export REGISTRY_USERNAME="" && \ export REGISTRY_PASSWORD="" && \ export REGISTRY_URL="https://registry.aws.itential.com/repository/automation-gateway-release/simple" && \ mkdir dist && \ cd dist && \ pip3 -v download --extra-index-url $REGISTRY_USERNAME:$REGISTRY_PASSWORD@$REGISTRY_URL automation-gateway==$AUTOMATION_GATEWAY_VERSION ``` > **Info** > > The `pip download` command supports `--platform`, `--python-version`, `--implementation`, and `--abi` options to target a different platform. See the [command reference](https://pip.pypa.io/en/stable/cli/pip_download/) for more information. The command above uses credentials for the Nexus repository. For JFrog repository credentials, see [Gateway system requirements](./system-requirements#customer-accounts-assigned-to-jfrog). #### Verify downloaded files Multiple `.whl` files are downloaded — these are all the prerequisites required by Gateway. ```bash [root@centos-7 d]# ls automation_gateway-1.45.1-py3-none-any.whl MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl ansible_runner-1.2.0-py2.py3-none-any.whl netifaces-0.10.9-cp36-cp36m-manylinux1_x86_64.whl argparse-1.4.0-py2.py3-none-any.whl pexpect-4.7.0-py2.py3-none-any.whl attrs-19.1.0-py2.py3-none-any.whl psutil-5.6.1.tar.gz certifi-2019.3.9-py2.py3-none-any.whl ptyprocess-0.6.0-py2.py3-none-any.whl chardet-3.0.4-py2.py3-none-any.whl pyrsistent-0.14.11.tar.gz Click-7.0-py2.py3-none-any.whl python_daemon-2.2.3-py2.py3-none-any.whl clickclick-1.2.2-py2.py3-none-any.whl python_dateutil-2.8.0-py2.py3-none-any.whl connexion-1.5.3-py2.py3-none-any.whl PyYAML-3.13.tar.gz docutils-0.14-py3-none-any.whl requests-2.21.0-py2.py3-none-any.whl Flask-1.0.2-py2.py3-none-any.whl setuptools-41.0.1-py2.py3-none-any.whl Flask_SQLAlchemy-2.3.2-py2.py3-none-any.whl six-1.12.0-py2.py3-none-any.whl idna-2.8-py2.py3-none-any.whl SQLAlchemy-1.3.3.tar.gz inflection-0.3.1.tar.gz swagger_spec_validator-2.4.3-py2.py3-none-any.whl itsdangerous-1.1.0-py2.py3-none-any.whl textfsm-0.4.1.tar.gz Jinja2-2.10.1-py2.py3-none-any.whl tomlkit-0.4.6-py2.py3-none-any.whl jsonschema-3.0.1-py2.py3-none-any.whl urllib3-1.24.1-py2.py3-none-any.whl lockfile-0.12.2-py2.py3-none-any.whl Werkzeug-0.15.2-py2.py3-none-any.whl ``` #### Create a tar archive Create a tar file of all `.whl` and `.tar.gz` files. ```bash [root@centos-7 d]# tar -zcvf automation_gateway-dist.tar.gz * automation_gateway-1.45.1-py3-none-any.whl ansible_runner-1.2.0-py2.py3-none-any.whl argparse-1.4.0-py2.py3-none-any.whl attrs-19.1.0-py2.py3-none-any.whl certifi-2019.3.9-py2.py3-none-any.whl chardet-3.0.4-py2.py3-none-any.whl Click-7.0-py2.py3-none-any.whl clickclick-1.2.2-py2.py3-none-any.whl connexion-1.5.3-py2.py3-none-any.whl docutils-0.14-py3-none-any.whl Flask-1.0.2-py2.py3-none-any.whl Flask_SQLAlchemy-2.3.2-py2.py3-none-any.whl idna-2.8-py2.py3-none-any.whl inflection-0.3.1.tar.gz itsdangerous-1.1.0-py2.py3-none-any.whl Jinja2-2.10.1-py2.py3-none-any.whl jsonschema-3.0.1-py2.py3-none-any.whl lockfile-0.12.2-py2.py3-none-any.whl logger-1.4.tar.gz MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl netifaces-0.10.9-cp36-cp36m-manylinux1_x86_64.whl pexpect-4.7.0-py2.py3-none-any.whl psutil-5.6.1.tar.gz ptyprocess-0.6.0-py2.py3-none-any.whl pyrsistent-0.14.11.tar.gz python_daemon-2.2.3-py2.py3-none-any.whl python_dateutil-2.8.0-py2.py3-none-any.whl PyYAML-3.13.tar.gz requests-2.21.0-py2.py3-none-any.whl setuptools-41.0.1-py2.py3-none-any.whl six-1.12.0-py2.py3-none-any.whl SQLAlchemy-1.3.3.tar.gz swagger_spec_validator-2.4.3-py2.py3-none-any.whl textfsm-0.4.1.tar.gz tomlkit-0.4.6-py2.py3-none-any.whl urllib3-1.24.1-py2.py3-none-any.whl Werkzeug-0.15.2-py2.py3-none-any.whl ``` ## Transfer PIP packages #### Transfer the tar file Transfer `automation_gateway-dist.tar.gz` to the target machine. #### Verify OS and Python versions Confirm the OS and Python versions match what you chose when preparing the distribution, then extract the archive. ```bash # mkdir tmp # cd tmp # tar -zxvf automation_gateway-dist.tar.gz ``` #### Install tar.gz dependencies Install all `.tar.gz` files and dependencies from the pre-packaged Gateway distribution before installing the `.whl` files. ```bash pip3 install *.tar.gz ``` #### Install .whl files Run the `pip` command to install all `.whl` files. ```bash pip3 install *.whl -f ./ --no-index ``` > How to perform an offline install of Itential Gateway on systems disconnected from the internet.