Air-gapped

Info

RabbitMQ version 3.13.0 or higher is required.

Please refer to the link for the Erlang-RabbitMQ compatibility matrix.

Info

To install Redis in an air-gapped environment, download the required packages on a preparation machine and then transfer them to the air-gapped server. The preparation machine should have internet access and run the same operating system version as the target server.

Debian, Ubuntu

Prepare packages

  1. On the preparation machine, run commands.

sudo apt install -y apt-rdepends wget ## Team RabbitMQ's signing key curl -1sLf "https://keys.openpgp.org/vks/v1/by-fingerprint/0A9AF2115F4687BD29803A206B73A36E6026DFCA" | sudo gpg --dearmor | sudo tee /usr/share/keyrings/com.rabbitmq.team.gpg > /dev/null sudo tee /etc/apt/sources.list.d/rabbitmq.list <<EOF ## Modern Erlang/OTP releases ## deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb1.rabbitmq.com/rabbitmq-erlang/ubuntu/noble noble main deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb2.rabbitmq.com/rabbitmq-erlang/ubuntu/noble noble main ## Provides modern RabbitMQ releases ## deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb1.rabbitmq.com/rabbitmq-server/ubuntu/noble noble main deb [arch=amd64 signed-by=/usr/share/keyrings/com.rabbitmq.team.gpg] https://deb2.rabbitmq.com/rabbitmq-server/ubuntu/noble noble main EOF sudo apt-get update -y ## Download package mkdir -p rabbitmq && cd rabbitmq apt-rdepends -p erlang-base erlang-asn1 erlang-crypto erlang-eldap erlang-ftp erlang-inets erlang-mnesia \ erlang-os-mon \ erlang-parsetools \ erlang-public-key \ erlang-runtime-tools \ erlang-snmp \ erlang-ssl \ erlang-syntax-tools \ erlang-tftp \ erlang-tools \ erlang-xmerl \ | grep -v "^ " \ | grep -v "^debconf" \ | xargs -I {} bash -c 'apt-get download "{}" || true' wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v4.2.5/rabbitmq-server_4.2.5-1_all.deb cd ..
  1. Copy the rabbitmq folder to a USB drive or secure transfer medium.

  2. Move it to the air-gapped server.

Install RabbitMQ

  1. On the target server, insert the USB drive or secure transfer medium.

  2. Run the commands below in the rabbitmq folder.

# Install sudo dpkg -i ./*.deb # enable service sudo systemctl enable --now rabbitmq-server sudo systemctl status rabbitmq-server
  1. Set up user.

sudo rabbitmqctl add_user <username> <password> sudo rabbitmqctl set_permissions -p / <username> "." "." "." sudo rabbitmqctl set_user_tags <username> administrator

Rocky, RHEL 9

Prepare packages

  1. On the preparation machine, run commands.

## primary RabbitMQ signing key sudo rpm --import 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc' ## modern Erlang repository sudo rpm --import 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key' ## RabbitMQ server repository sudo rpm --import 'https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key' sudo tee /etc/yum.repos.d/rabbitmq.repo >/dev/null <<'EOF' ## ## Zero dependency Erlang RPM ## [modern-erlang] name=modern-erlang-el9 # Use a set of mirrors maintained by the RabbitMQ core team. # The mirrors have significantly higher bandwidth quotas. baseurl=https://yum1.rabbitmq.com/erlang/el/9/$basearch https://yum2.rabbitmq.com/erlang/el/9/$basearch repo_gpgcheck=1 enabled=1 gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key gpgcheck=1 sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300 pkg_gpgcheck=1 autorefresh=1 type=rpm-md [modern-erlang-noarch] name=modern-erlang-el9-noarch # Use a set of mirrors maintained by the RabbitMQ core team. # The mirrors have significantly higher bandwidth quotas. baseurl=https://yum1.rabbitmq.com/erlang/el/9/noarch https://yum2.rabbitmq.com/erlang/el/9/noarch repo_gpgcheck=1 enabled=1 gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc gpgcheck=1 sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300 pkg_gpgcheck=1 autorefresh=1 type=rpm-md ## ## RabbitMQ Server ## [rabbitmq-el9] name=rabbitmq-el9 baseurl=https://yum2.rabbitmq.com/rabbitmq/el/9/$basearch https://yum1.rabbitmq.com/rabbitmq/el/9/$basearch repo_gpgcheck=1 enabled=1 # Cloudsmith's repository key and RabbitMQ package signing key gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc gpgcheck=1 sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300 pkg_gpgcheck=1 autorefresh=1 type=rpm-md [rabbitmq-el9-noarch] name=rabbitmq-el9-noarch baseurl=https://yum2.rabbitmq.com/rabbitmq/el/9/noarch https://yum1.rabbitmq.com/rabbitmq/el/9/noarch repo_gpgcheck=1 enabled=1 # Cloudsmith's repository key and RabbitMQ package signing key gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc gpgcheck=1 sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt metadata_expire=300 pkg_gpgcheck=1 autorefresh=1 type=rpm-md EOF sudo dnf update -y # download erlang and rabbitmq mkdir rabbitmq && cd rabbitmq dnf download --resolve --alldeps --downloaddir . erlang wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v4.2.5/rabbitmq-server-4.2.5-1.el8.noarch.rpm cd ..
  1. Copy the rabbitmq folder to a USB drive or secure transfer medium.

  2. Move it to the air-gapped server.

Install RabbitMQ

  1. On the target server, insert the USB drive or secure transfer medium.

  2. Run the commands below in the rabbitmq folder.

sudo dnf install ./*.rpm --disablerepo '*' sudo systemctl enable --now rabbitmq-server sudo systemctl status rabbitmq-server
Warning

Sometimes, other dependencies require upgrading. Example:


You should manually download the dependencies using the command dnf download --resolve --alldeps --downloaddir . <package_names> . Then copy them to the rabbitmq-server folder and install again.

  1. Set up user.

sudo rabbitmqctl add_user <username> <password> sudo rabbitmqctl set_permissions -p / <username> "." "." "." sudo rabbitmqctl set_user_tags <username> administrator