Skip to content

Instantly share code, notes, and snippets.

@jdrago999
Last active August 23, 2017 06:24
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 jdrago999/f9299992f7eb9b2d95bd82e371e3205d to your computer and use it in GitHub Desktop.
Save jdrago999/f9299992f7eb9b2d95bd82e371e3205d to your computer and use it in GitHub Desktop.
Install RabbitMQ with basic configuration
#!/bin/bash
### Usage:
# RABBITMQ_DEFAULT_USER=someuser RABBITMQ_DEFAULT_PASS=secret123 RABBITMQ_DEFAULT_VHOST=myvhost setup-rabbitmq.sh
set -euo pipefail
apt-get update -y
apt-get install -y curl wget gnupg apt-transport-https
# Add Debian Wheezy backports repository to obtain init-system-helpers
gpg --keyserver pgpkeys.mit.edu --recv-key 7638D0442B90D010
gpg -a --export 7638D0442B90D010 | apt-key add -
echo 'deb http://ftp.debian.org/debian wheezy-backports main' | tee /etc/apt/sources.list.d/wheezy_backports.list
# Add Erlang Solutions repository to obtain esl-erlang
wget -O- https://packages.erlang-solutions.com/debian/erlang_solutions.asc | apt-key add -
echo 'deb https://packages.erlang-solutions.com/debian wheezy contrib' | tee /etc/apt/sources.list.d/esl.list
apt-get update
apt-get install -y init-system-helpers socat esl-erlang
# continue with RabbitMQ installation as explained above
wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | apt-key add -
echo 'deb http://www.rabbitmq.com/debian/ testing main' | tee /etc/apt/sources.list.d/rabbitmq.list
apt-get update
apt-get install -y rabbitmq-server
# Installation has concluded - now we can start and configure it:
service rabbitmq-server start
sleep 5
echo 'enabling...'
rabbitmq-plugins enable rabbitmq_management
echo 'list users?'
if rabbitmqctl list_users | grep $RABBITMQ_DEFAULT_USER; then
echo "user '$RABBITMQ_DEFAULT_USER' already exists"
else
echo 'adding user.....'
rabbitmqctl add_user $RABBITMQ_DEFAULT_USER $RABBITMQ_DEFAULT_PASS || echo 'weird...'
fi
echo 'list users (2)'
if rabbitmqctl list_users | grep $RABBITMQ_DEFAULT_USER | grep -F "[administrator]"; then
echo "user '$RABBITMQ_DEFAULT_USER' already tagged as 'administrator'"
else
echo 'set user tags'
rabbitmqctl set_user_tags $RABBITMQ_DEFAULT_USER administrator
fi
rabbitmqctl add_vhost $RABBITMQ_DEFAULT_VHOST || echo "vhost '$RABBITMQ_DEFAULT_VHOST' already exists"
echo 'list permissions?'
if rabbitmqctl list_permissions -p $RABBITMQ_DEFAULT_USER | grep $RABBITMQ_DEFAULT_USER | grep "$RABBITMQ_DEFAULT_VHOST\\.\\*\\s+\\.\\*\\s+\\.\\*\$/"; then
echo "user '$RABBITMQ_DEFAULT_USER' already has permissions '.* .* .*'"
else
echo 'setting permissions'
rabbitmqctl set_permissions -p $RABBITMQ_DEFAULT_USER $RABBITMQ_DEFAULT_VHOST ".*" ".*" ".*"
fi
service rabbitmq-server stop
service rabbitmq-server start
@jdrago999
Copy link
Author

Consider the following preamble:

apt-get install -y wget gpg

# Add Debian Wheezy backports repository to obtain init-system-helpers
gpg --keyserver pgpkeys.mit.edu --recv-key 7638D0442B90D010
gpg -a --export 7638D0442B90D010 | sudo apt-key add -
echo 'deb http://ftp.debian.org/debian wheezy-backports main' | sudo tee /etc/apt/sources.list.d/wheezy_backports.list

# Add Erlang Solutions repository to obtain esl-erlang
wget -O- https://packages.erlang-solutions.com/debian/erlang_solutions.asc | sudo apt-key add -
echo 'deb https://packages.erlang-solutions.com/debian wheezy contrib' | sudo tee /etc/apt/sources.list.d/esl.list

sudo apt-get update
sudo apt-get install -y init-system-helpers socat esl-erlang

# continue with RabbitMQ installation as explained above
wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -
echo 'deb http://www.rabbitmq.com/debian/ testing main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list

sudo apt-get update
sudo apt-get install -y rabbitmq-server

@jdrago999
Copy link
Author

The above updates have now been added to the original script.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment