Skip to content

Instantly share code, notes, and snippets.

@defulmere
Last active January 30, 2024 17:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save defulmere/7b56a14d33f1a291fd2441bedd0671ff to your computer and use it in GitHub Desktop.
Save defulmere/7b56a14d33f1a291fd2441bedd0671ff to your computer and use it in GitHub Desktop.
rabbitmq on opalstack

RabbitMQ on Opalstack

  1. Some preparatory steps:

     mkdir -p ~/tmp ~/src ~/lib
     export TMPDIR=~/tmp
     export PATH=$HOME/bin:$PATH
    
  2. Create a 'nginx proxy port' application named 'epmd' in the dashboard to reserve a port for epmd. (11111 in the examples below)

  3. Create a 'nginx proxy port' application named 'rabbitmq' in the dashboard to reserve a port for RabbitMQ. (22222 in the examples below)

  4. Install Erlang and run epmd:

     cd ~/src
     wget http://erlang.org/download/otp_src_26.2.1.tar.gz
     tar zxf otp_src_26.2.1.tar.gz
     cd otp_src_26.2.1
     ./configure --prefix=$HOME
     make
     make install
     epmd -port 11111 -daemon
    
  5. Install RabbitMQ:

     cd ~/src
     wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.12.12/rabbitmq-server-generic-unix-3.12.12.tar.xz
     tar xf rabbitmq-server-generic-unix-3.12.12.tar.xz
     ln -s $PWD/rabbitmq_server-3.12.12 ~/lib/erlang/lib/
    
  6. Set CONFIG_FILE, LOG_BASE, and MNESIA_BASE in ~/src/rabbitmq_server-3.12.12/sbin/rabbitmq-defaults (replace username with your username)

     CONFIG_FILE=/home/username/src/rabbitmq_server-3.12.12/sbin/
     LOG_BASE=/home/username/logs/apps/rabbitmq
     MNESIA_BASE=/home/username/src/rabbitmq_server-3.12.12/sbin/
    
  7. Set your epmd and RabbitMQ ports at end of ~/src/rabbitmq_server-3.12.12/sbin/rabbitmq-env:

     export ERL_EPMD_PORT=11111
     export RABBITMQ_NODE_PORT=22222
     export ERL_INETRC=$HOME/.erl_inetrc
    
  8. Create ~/hosts with the following contents (replace opalNN with your server hostname):

     127.0.0.1 localhost.localdomain localhost
     ::1          localhost6.localdomain6 localhost6
     127.0.0.1 opalNN opalNN.opalstack.com
    
  9. Create ~/.erl_inetrc with the following contents (replace username with your username):

     {hosts_file, "/home/username/hosts"}.
     {lookup, [file,native]}.
    
  10. Test RabbitMQ:

    ~/src/rabbitmq_server-3.12.12/sbin/rabbitmq-server -detached
    ~/src/rabbitmq_server-3.12.12/sbin/rabbitmqctl status
    
  11. Secure your RabbitMQ by creating a user for it and removing guest access (replace username, password, and vhostname with whatever you want to use):

    ~/src/rabbitmq_server-3.12.12/sbin/rabbitmqctl add_user <username> <password>
    ~/src/rabbitmq_server-3.12.12/sbin/rabbitmqctl set_user_tabs <username> administrator
    ~/src/rabbitmq_server-3.12.12/sbin/rabbitmqctl add_vhost <vhostname>
    ~/src/rabbitmq_server-3.12.12/sbin/rabbitmqctl set_permissions -p <vhostname> <username> ".*" ".*" ".*"
    ~/src/rabbitmq_server-3.12.12/sbin/rabbitmqctl clear_permissions -p <vhostname> guest
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment