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
  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
  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