> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.itential.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.itential.com/_mcp/server.

# Gateway 2023.3 and 2023.2 RHEL 8 install

> Step-by-step guide for installing Itential Gateway on RHEL 8 for Gateway versions 2023.2 and 2023.3.

The following is a step-by-step guide for installing Itential Gateway on RHEL 8.

* If you're installing Gateway on a different platform, you need to install or compile Python 3.9.
* After installing Python 3.9, follow the steps starting with [Set up directory and virtual environment](#set-up-directory-and-virtual-environment).

> **Note**
>
> Refer to the [Gateway system requirements](/itential-gateway/4/system-requirements) for information on the software repository and registry credentials available for each Gateway installation method.

#### Python packages for integration

#### 2023.2.7 and later

Starting with 2023.2.7, Gateway automatically installs the necessary Python packages for the following integrations:

* GRPC
* HashiCorp Vault
* LDAP
* Netconf
* Netmiko
* Nornir
* Ansible

No additional steps are required.

#### 2023.2.0–2023.2.6

In releases 2023.2.0–2023.2.6, Gateway doesn't install Python packages for the following optional integrations. You must install them manually.

> **Note**
>
> This doesn't affect upgrades, as the required packages should already be installed.

For new installs, if you enable one of the following integrations without installing the required package, Gateway won't start and displays an error message listing the missing packages. Install the required package in the virtual environment that Gateway is running in.

### GRPC

```bash
python3 -m pip install pygnmi==0.8.9 grpcio==1.53.0
```

### HashiCorp Vault

```bash
python3 -m pip install hvac==1.0.2
```

### LDAP

```bash
python3 -m pip install ldap3==2.9.1 flask-ldap3-login==0.9.18
```

### Netconf

```bash
python3 -m pip install ncclient==0.6.10
```

### Netmiko

```bash
python3 -m pip install netmiko==4.1.2
```

### Nornir

```bash
python3 -m pip install nornir==3.3.0 nornir-netmiko==0.2.0 nornir-utils==0.2.0
```

If you try to enable an integration that hasn't been installed, Gateway displays an error message.

#### Root access

This method requires root access on the server where you're installing Gateway.

```bash
sudo su
```

#### Install system packages

```bash
dnf -y install python39 python39-devel make gcc-c++
```

#### Set up directory and virtual environment

```bash
mkdir /opt/automation-gateway
cd /opt/automation-gateway
python3.9 -m venv .venv
```

Activate the virtual environment for your current session.

```bash
source /opt/automation-gateway/.venv/bin/activate
```

> **Warning**
>
> All following commands must be run in the virtual environment.

#### Include the virtual environment in default shell

This step is optional but recommended. It activates the virtual environment for every shell you open.

```bash
echo source /opt/automation-gateway/.venv/bin/activate > /etc/profile.d/venv.sh
```

#### Install Itential Gateway

Work with your Itential account manager to obtain the `whl` file and place it in `/tmp` on the Gateway server.

Replace `<version>` with the version of Gateway you're installing. For example: `pip install /tmp/automation_gateway-3.198.19+2022.1.8-py3-none-any.whl`

```bash
pip install /tmp/automation_gateway-<version>-py3-none-any.whl
```

#### Install Ansible

```bash
pip install ansible==2.10.7
```

#### Install Terraform (optional)

```bash
yum install -y yum-utils
yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
yum -y install terraform
```

If the above commands don't work on your platform, download Terraform directly: [Install Terraform](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli).

#### Configure the service

The following configurations can be adjusted for your environment. By default, Gateway runs using [gunicorn](https://gunicorn.org/). You can add a front-end HTTP server such as [NGINX](https://www.nginx.com/) or [HAProxy](https://www.haproxy.org/) in front of this service configuration. Configurations for NGINX and HAProxy are outside the scope of this documentation.

### Create user

Create a user to run automation-gateway with gunicorn.

```bash
useradd itential
```

### Set up folders

```bash
mkdir /var/lib/automation-gateway
mkdir /etc/automation-gateway
chown itential /var/lib/automation-gateway
```

#### Configure Itential Gateway

Copy the configuration file included in the release and modify it for your environment.

```bash
cp \
  /opt/automation-gateway/.venv/lib64/python3.9/site-packages/automation_gateway/properties.yml \
  /etc/automation-gateway/properties.yml
```

Open the following file in a text editor and update any settings that differ from the defaults for your environment.

```bash
/etc/automation-gateway/properties.yml
```

#### Configure systemd

Create the following file in a text editor.

```bash
/etc/systemd/system/automation-gateway.service
```

Add the following default configuration.

```ini
[Unit]
Description=Itential Gateway
After=network.target

[Service]
User=itential
Restart=always
Type=simple
ExecStart=/opt/automation-gateway/.venv/bin/automation-gateway --properties-file=/etc/automation-gateway/properties.yml
WorkingDirectory=/tmp
Environment=MAX_EVENT_RES=15000000
Environment=PATH=/opt/automation-gateway/.venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

[Install]
WantedBy=multi-user.target
```

Enable automation-gateway on boot and start the service.

```bash
systemctl enable automation-gateway
systemctl daemon-reload
systemctl start automation-gateway
```

### Check service status

```bash
systemctl status automation-gateway
```

### Open Gateway in a browser

Replace `server` with the hostname of the server where you installed Gateway.

|                  |                       |
| ---------------- | --------------------- |
| URL              | `http://server:8083/` |
| Default username | `admin@itential`      |
| Default password | `admin`               |

### Install additional content

Install custom content, playbooks, and scripts to use with Gateway.

```bash
# Create the custom content directories to match your configuration (below is default)
mkdir -p /usr/share/automation-gateway/ansible/inventory \
         /usr/share/automation-gateway/ansible/modules \
         /usr/share/automation-gateway/ansible/roles \
         /usr/share/automation-gateway/ansible/collections \
         /usr/share/automation-gateway/ansible/playbooks \
         /usr/share/automation-gateway/nornir/modules \
         /usr/share/automation-gateway/scripts \
         /usr/share/automation-gateway/terraform

chown -R itential /usr/share/automation-gateway/
```

## Folders and files

By default, Gateway uses the following folders and files.

```text
|
├── /etc/automation-gateway/
│   └── properties.yaml                       # Main configuration
|                                             (most settings are configured in UI after initial startup)
├── /opt/automation-gateway/
|   └── .venv/                                # Python virtual environment
|       └── lib/python3.9/site-packages/
|           └── automation_gateway/           # Where automation gateway source is installed
|
├── /var/lib/automation-gateway/
|   ├── automation-gateway.db                 # Main SQLite database
|   ├── automation-gateway_audit.db           # Audit logs
|   ├── automation-gateway_exec_history.db    # Exec history logs
|   └── automation-gateway.log                # Server logs
|
└── /usr/share/automation-gateway/
    ├── ansible/                               # Custom Ansible content
    ├── nornir/                                # Custom Nornir content
    ├── scripts/                               # Custom scripts content
    └── terraform/                             # Custom Terraform content
```