Running the Tanzu RabbitMQ Standalone OCI Image

This information includes some details to run the Tanzu RabbitMQ OCI image.

Follow these steps:

How to run Tanzu RabbitMQ OCI Image without Kubernetes

Important

The Tanzu RabbitMQ OCI is a container image that you can run in a container runtime of your choice. This allows for a quick and lightweight deployment of a standalone Tanzu RabbitMQ or a small RabbitMQ cluster using multiple containers. It is important to note that this Tanzu RabbitMQ solution should really only be used if you don't have a Kubernetes environment available or you are using non-Kubernetes container orchestration. Your first choice solution should be the Kubernetes operator for RabbitMQ, which offers complete management of RabbitMQ clusters. For more information about the Tanzu RabbitMQ for Kubernetes offering or to get a quote, visit the Tanzu RabbitMQ Product Page.

The following is a list of some common container runtimes that you can use to run the Tanzu RabbitMQ OCI image.

Choose Podman as your Container Runtime

The following list are some reasons for choosing Podman as your runtime container.

  • Easy to use.
  • For Linux customers, running the OCI image under a lightweight runtime container like Podman means you get dependency management and the same defaults from the container image and the value add plugins without the resource and complexity overhead of a heavyweight runtime container or scheduler.
  • You can run OCI images as systemd services with Podman successfully. Podman is daemonless, it is very light weight.

Access the VMware Tanzu RabbitMQ (OCI)

Complete the following steps to access the login credentials and docker images for your release.

  1. Login into the Broadcom Support Portal.
  2. From the drop-down list beside your username, select Tanzu.
  3. Select My Downloads from the navigation on the left.
  4. Search for RabbitMQ.
  5. Select VMware Tanzu RabbitMQ, and click this > arrow to display all releases.
  6. Click the Token Download icon Token Download icon.
  7. Follow the detailed instructions that are displayed to authenticate and pull the VMware Tanzu RabbitMQ OCI for your specific release.

Configure the Tanzu RabbitMQ OCI Image

  • Note the port mappings (mandatory).
  • Note the volume mounts (mandatory).
  • Note the --oom-score-adj parameter (mandatory).
  • Note the -e parameter: for the erlang cookie. The file can also be copied to the container. For single containers it doesn't matter (optional).
  • Note the -h parameter to provide the rabbitmq hostname. This parameter is only relevant for clustering (optional).
  • Adjust the image version as required (mandatory).

Additional Information about Volume Mounts

  • For the Internal data store, mount the local filesystem location from the virtual machine which you want to use for Tanzu RabbitMQ's internal data store to /var/lib/rabbitmq/.
  • User defined configuration values - RabbitMQ uses a config directory model so add a file at the end of the configuration processing by mounting the file to /etc/rabbitmq/conf.d/90-userDefinedConfiguration.conf.
  • The list of enabled plugins is a special case of configuration data because it must be writable by the RabbitMQ proces. Mount the file to hold this data to /etc/rabbitmq/enabled_plugins.
  • The config mount can be read only but the data store and the enabled plugins list must be read-write for the rabbitmq user in the container.
  • If you are using TLS or mutual TLS then the certificate and key for the node, and possibly the certificate to validate client certificates against must be mounted to /etc/rabbitmq-tls/server_certificate.pem, /etc/rabbitmq-tls/server_key.pem and /etc/rabbitmq-tls/ca_certificate.pem

Run the Tanzu RabbitMQ OCI Image

Use Docker

Run the Tanzu RabbitMQ OCI image by running one of the following commands depending on the variant that you are using. These examples are for the 3.13.3 release.

AMD64

docker run rabbitmq.packages.broadcom.com/vmware-tanzu-rabbitmq:3.13.3

ARM64

docker run rabbitmq.packages.broadcom.com/vmware-tanzu-rabbitmq-arm64:3.13.3

AMD64 with FIPS enabled

docker run rabbitmq.packages.broadcom.com/vmware-tanzu-rabbitmq-fips:3.13.3

ARM64 with FIPS enabled

docker run rabbitmq.packages.broadcom.com/vmware-tanzu-rabbitmq-arm64-fips:3.13.3

Use Podman

Run the Tanzu RabbitMQ OCI image with the appropriate tag. The tags are -arm64, -fips, and -arm64-fips` The full commands are included here, you will only be running one of these commands based on the variant you are using. These examples are for the 3.13.3 release.

**AMD64**
podman run rabbitmq.packages.broadcom.com/vmware-tanzu-rabbitmq:3.13.3

ARM64

podman run rabbitmq.packages.broadcom.com/vmware-tanzu-rabbitmq-arm64:3.13.3

AMD64 with FIPS enabled

podman run rabbitmq.packages.broadcom.com/vmware-tanzu-rabbitmq-fips:3.13.3

ARM64 with FIPS enabled

podman run rabbitmq.packages.broadcom.com/vmware-tanzu-rabbitmq-arm64-fips:3.13.3

The following example runs the OCI image (container runtime is podman) using the configuration parameters list in Configuration.

podman run --cgroups=no-conmon --rm --sdnotify=conmon -d --replace -it --oom-
score-adj=200 --name rabbitmq -p 4369:4369 -p 5672:5672 -p 5671:5671 -p 5552:5552 -p 
5551:5551 -p 15672:15672 -p 15671:15671 -p 25672:25672 -v 
/data/rabbitmq/etc:/etc/rabbitmq -v /data/rabbitmq/logs:/var/log/rabbitmq -v 
/data/rabbitmq/data:/var/lib/rabbitmq/ -e 
RABBITMQ_ERLANG_COOKIE=RXFKEYUZJMKCJJVPXHON -h rmq3 -d 
rabbitmq.packages.broadcom.com/vmware-tanzu-rabbitmq:3.13.3

Run the Tanzu RabbitMQ Container Image as a systemd service using Podman

To turn on systemd services so that every time your machine restarts your RabbitMQ cluster is up and running:

podman generate systemd --name rabbitmq --files --new

To allow for systemd services to start at boot without login (and continue running after logout) for individual users, turn on "lingering" using loginctl enable-linger <username>. For more information, go to the podman-generate-systemd manpages.

$XDG_RUNTIME_DIR defines the base directory relative to which user-specific non-essential runtime files and other file objects (such as sockets, named pipes, and so on) should be stored. The directory MUST be owned by the user, and the owner MUST be the only one that has read and write access to it. It is a Unix access mode, which MUST be 0700.

In full:

podman generate systemd --name rabbitmq --files --new

loginctl enable-linger $USER
export XDG_RUNTIME_DIR=/run/user/$(id -u)

systemctl --user daemon-reload
systemctl --user enable container-rabbitmq.service
systemctl --user restart container-rabbitmq.service

Setup and Configure Warm Standby Replication

Follow these instructions to setup and configure Warm Standby Replication.

Further guidance when using Tanzu RabbitMQ

Go to:

  • How to Manage RabbitMQ, which provides documentation for configuring and managing the RabbitMQ broker.
  • How to Monitor RabbitMQ, which includes information which will guide you on how to setup monitoring for RabbitMQ and the applications that use it.
check-circle-line exclamation-circle-line close-line
Scroll to top icon