# Installation from NGINX repository Type of document: How-to guide Product: NGINX Agent --- ## Overview Learn how to install NGINX Agent from the NGINX Open Source repository. ## Prerequisites - NGINX installed. Once installed, ensure it is running. If you don't have it installed already, follow these steps to install [NGINX](https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-open-source/) - A [supported operating system and architecture](/agent/technical-specifications.md#supported-distributions) - `root` privilege ## Configure NGINX OSS Repository for installing NGINX Agent Before you install NGINX Agent for the first time on your system, you need to set up the `nginx-agent` packages repository. Afterward, you can install and update NGINX Agent from the repository. ### Installing NGINX Agent on RHEL, CentOS, Rocky Linux, AlmaLinux, and Oracle Linux #### Expand instructions 1. Install the prerequisites: ```shell sudo yum install yum-utils ``` 1. To set up the yum repository, create a file with name `/etc/yum.repos.d/nginx-agent.repo` with the following contents: ```ini [nginx-agent] name=nginx agent repo baseurl=http://packages.nginx.org/nginx-agent/centos/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true ``` 1. To install `nginx-agent`, run the following command: ```shell sudo yum install nginx-agent ``` **Note:** To install `nginx-agent` with a specific version (for example, 2.42.0): ```shell sudo yum install -y nginx-agent-2.42.0 ``` When prompted to accept the GPG key, verify that the fingerprint matches `8540 A6F1 8833 A80E 9C16 53A4 2FD2 1310 B49F 6B46`, `573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62`, `9E9B E90E ACBC DE69 FE9B 204C BCDC D8A3 8D88 A2B3`, and if so, accept it. 1. Verify the installation: ```shell sudo nginx-agent -v ``` ### Installing NGINX Agent on Ubuntu #### Expand instructions 1. Install the prerequisites: ```shell sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring ``` 1. Import an official nginx signing key so apt can verify the packages authenticity. Fetch the key: ```shell curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \ | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null ``` 1. Verify that the downloaded file contains the proper key: ```shell gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg ``` The output should contain the full fingerprints `8540 A6F1 8833 A80E 9C16 53A4 2FD2 1310 B49F 6B46`, `573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62`, `9E9B E90E ACBC DE69 FE9B 204C BCDC D8A3 8D88 A2B3` as follows: ```shell pub rsa4096 2024-05-29 [SC] 8540A6F18833A80E9C1653A42FD21310B49F6B46 uid nginx signing key pub rsa2048 2011-08-19 [SC] [expires: 2027-05-24] 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 uid nginx signing key pub rsa4096 2024-05-29 [SC] 9E9BE90EACBCDE69FE9B204CBCDCD8A38D88A2B3 uid nginx signing key ``` **Note:** If the fingerprint is different, remove the file. 1. Add the nginx agent repository: ```shell echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \ http://packages.nginx.org/nginx-agent/ubuntu/ `lsb_release -cs` agent" \ | sudo tee /etc/apt/sources.list.d/nginx-agent.list ``` 1. To install `nginx-agent`, run the following commands: ```shell sudo apt update sudo apt install nginx-agent ``` **Note:** To install `nginx-agent` with a specific version (for example, 2.42.0): Update your package index and install a specific version of the nginx-agent. Replace with your current Ubuntu codename (for example, jammy, noble). ```shell sudo apt update sudo apt install -y nginx-agent=2.42.0~ ``` 1. Verify the installation: ```shell sudo nginx-agent -v ``` ### Installing NGINX Agent on Debian #### Expand instructions 1. Install the prerequisites: ```shell sudo apt install curl gnupg2 ca-certificates lsb-release debian-archive-keyring ``` 1. Import an official nginx signing key so apt can verify the packages authenticity. Fetch the key: ```shell curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \ | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null ``` 1. Verify that the downloaded file contains the proper key: ```shell gpg --dry-run --quiet --no-keyring \ --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg ``` The output should contain the full fingerprints `8540 A6F1 8833 A80E 9C16 53A4 2FD2 1310 B49F 6B46`, `573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62`, `9E9B E90E ACBC DE69 FE9B 204C BCDC D8A3 8D88 A2B3` as follows: ```shell pub rsa4096 2024-05-29 [SC] 8540A6F18833A80E9C1653A42FD21310B49F6B46 uid nginx signing key pub rsa2048 2011-08-19 [SC] [expires: 2027-05-24] 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 uid nginx signing key pub rsa4096 2024-05-29 [SC] 9E9BE90EACBCDE69FE9B204CBCDCD8A38D88A2B3 uid nginx signing key ``` **Note:** If the fingerprint is different, remove the file. 1. Add the `nginx-agent` repository: ```shell echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \ http://packages.nginx.org/nginx-agent/debian/ `lsb_release -cs` agent" \ | sudo tee /etc/apt/sources.list.d/nginx-agent.list ``` 1. To install `nginx-agent`, run the following commands: ```shell sudo apt update sudo apt install nginx-agent ``` **Note:** To install `nginx-agent` with a specific version (for example, 2.42.0): Update your package index and install a specific version of the nginx-agent. Replace with your current Debian codename (for example, bullseye). ```shell sudo apt update sudo apt install -y nginx-agent=2.42.0~ ``` 1. Verify the installation: ```shell sudo nginx-agent -v ``` ### Installing NGINX Agent on SLES #### Expand instructions 1. Install the prerequisites: ```shell sudo zypper install curl ca-certificates gpg2 gawk ``` 1. To set up the zypper repository for `nginx-agent` packages, run the following command: ```shell sudo zypper addrepo --gpgcheck --refresh --check \ 'http://packages.nginx.org/nginx-agent/sles/$releasever_major' nginx-agent ``` 1. Next, import an official NGINX signing key so `zypper`/`rpm` can verify the package's authenticity. Fetch the key: ```shell curl -o /tmp/nginx_signing.key https://nginx.org/keys/nginx_signing.key ``` 1. Verify that the downloaded file contains the proper key: ```shell gpg --with-fingerprint --dry-run --quiet --no-keyring --import --import-options import-show /tmp/nginx_signing.key ``` 1. The output should contain the full fingerprints `8540 A6F1 8833 A80E 9C16 53A4 2FD2 1310 B49F 6B46`, `573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62`, `9E9B E90E ACBC DE69 FE9B 204C BCDC D8A3 8D88 A2B3` as follows: ```shell pub rsa4096 2024-05-29 [SC] 8540A6F18833A80E9C1653A42FD21310B49F6B46 uid nginx signing key pub rsa2048 2011-08-19 [SC] [expires: 2027-05-24] 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 uid nginx signing key pub rsa4096 2024-05-29 [SC] 9E9BE90EACBCDE69FE9B204CBCDCD8A38D88A2B3 uid nginx signing key ``` 1. Finally, import the key to the rpm database: ```shell sudo rpmkeys --import /tmp/nginx_signing.key ``` 1. To install `nginx-agent`, run the following command: ```shell sudo zypper install nginx-agent ``` **Note:** To install `nginx-agent` with a specific version (for example, 2.42.0): ```shell sudo zypper install -y nginx-agent=2.42.0 ``` 1. Verify the installation: ```shell sudo nginx-agent -v ``` ### Installing NGINX Agent on Alpine Linux #### Expand instructions 1. Install the prerequisites: ```shell sudo apk add openssl curl ca-certificates ``` 1. To set up the apk repository for `nginx-agent` packages, run the following command: ```shell printf "%s%s%s\n" \ "http://packages.nginx.org/nginx-agent/alpine/v" \ `grep -o -E '^[0-9]+\.[0-9]+' /etc/alpine-release` \ "/main" \ | sudo tee -a /etc/apk/repositories ``` 1. Next, import an official NGINX signing key so apk can verify the package's authenticity. Fetch the key: ```shell curl -o /tmp/nginx_signing.rsa.pub https://nginx.org/keys/nginx_signing.rsa.pub ``` 1. Verify that downloaded file contains the proper key: ```shell openssl rsa -pubin -in /tmp/nginx_signing.rsa.pub -text -noout ``` The output should contain the following modulus: ```shell Public-Key: (2048 bit) Modulus: 00:fe:14:f6:0a:1a:b8:86:19:fe:cd:ab:02:9f:58: 2f:37:70:15:74:d6:06:9b:81:55:90:99:96:cc:70: 5c:de:5b:e8:4c:b2:0c:47:5b:a8:a2:98:3d:11:b1: f6:7d:a0:46:df:24:23:c6:d0:24:52:67:ba:69:ab: 9a:4a:6a:66:2c:db:e1:09:f1:0d:b2:b0:e1:47:1f: 0a:46:ac:0d:82:f3:3c:8d:02:ce:08:43:19:d9:64: 86:c4:4e:07:12:c0:5b:43:ba:7d:17:8a:a3:f0:3d: 98:32:b9:75:66:f4:f0:1b:2d:94:5b:7c:1c:e6:f3: 04:7f:dd:25:b2:82:a6:41:04:b7:50:93:94:c4:7c: 34:7e:12:7c:bf:33:54:55:47:8c:42:94:40:8e:34: 5f:54:04:1d:9e:8c:57:48:d4:b0:f8:e4:03:db:3f: 68:6c:37:fa:62:14:1c:94:d6:de:f2:2b:68:29:17: 24:6d:f7:b5:b3:18:79:fd:31:5e:7f:4c:be:c0:99: 13:cc:e2:97:2b:dc:96:9c:9a:d0:a7:c5:77:82:67: c9:cb:a9:e7:68:4a:e1:c5:ba:1c:32:0e:79:40:6e: ef:08:d7:a3:b9:5d:1a:df:ce:1a:c7:44:91:4c:d4: 99:c8:88:69:b3:66:2e:b3:06:f1:f4:22:d7:f2:5f: ab:6d Exponent: 65537 (0x10001) ``` 1. Finally, move the key to apk trusted keys storage: ```shell sudo mv /tmp/nginx_signing.rsa.pub /etc/apk/keys/ ``` 1. To install `nginx-agent`, run the following command: ```shell sudo apk add nginx-agent ``` 1. Verify the installation: ```shell sudo nginx-agent -v ``` ### Installing NGINX Agent on Amazon Linux 2023 #### Expand instructions 1. Install the prerequisites: ```shell sudo dnf install yum-utils procps-ng ``` 1. To set up the dnf repository for Amazon Linux 2023, create the file named `/etc/yum.repos.d/nginx-agent.repo` with the following contents: ```shell [nginx-agent] name=nginx agent repo baseurl=https://packages.nginx.org/nginx-agent/amzn/2023/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true ``` 1. To install `nginx-agent` with a specific version (for example, 2.42.0): ```shell sudo dnf install -y nginx-agent-2.42.0 ``` 1. When prompted to accept the GPG key, verify that the fingerprint matches `8540 A6F1 8833 A80E 9C16 53A4 2FD2 1310 B49F 6B46`, `573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62`, `9E9B E90E ACBC DE69 FE9B 204C BCDC D8A3 8D88 A2B3` and if so, accept it. 1. Verify the installation: ```shell sudo nginx-agent -v ``` ### Installing NGINX Agent on Amazon Linux 2 #### Expand instructions 1. Install the prerequisites: ```shell sudo yum install yum-utils procps ``` 1. To set up the yum repository for Amazon Linux 2, create a file with name `/etc/yum.repos.d/nginx-agent.repo` with the following contents: ```ini [nginx-agent] name=nginx agent repo baseurl=http://packages.nginx.org/nginx-agent/amzn2/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true ``` 1. To install `nginx-agent`, run the following command: ```shell sudo yum install nginx-agent ``` **Note:** To install `nginx-agent` with a specific version (for example, 2.42.0): ```shell sudo yum install -y nginx-agent-2.42.0 ``` 1. When prompted to accept the GPG key, verify that the fingerprint matches `8540 A6F1 8833 A80E 9C16 53A4 2FD2 1310 B49F 6B46`, `573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62`, `9E9B E90E ACBC DE69 FE9B 204C BCDC D8A3 8D88 A2B3`, and if so, accept it. 1. Verify the installation: ```shell sudo nginx-agent -v ``` ### Installing NGINX Agent on FreeBSD #### Expand instructions 1. To setup the pkg repository create the file named `/etc/pkg/nginx-agent.conf` with the following content: ```shell nginx-agent: { URL: pkg+http://packages.nginx.org/nginx-agent/freebsd/${ABI}/latest ENABLED: true MIRROR_TYPE: SRV } ``` 1. To install `nginx-agent` with a specific version (for example, 2.42.0): ```shell sudo pkg install nginx-agent-2.42.0 ``` 1. Verify the installation: ```shell sudo nginx-agent -v ```