#!/usr/bin/env bash URL="http://localhost:15672/cli/rabbitmqadmin" VHOST="<>" USER="<>" PWD="<>" QUEUE="<>" FAILED_QUEUE="<>" INPUT_EX="<>" FAILED_INPUT_EX="<>" set_user_and_vhost() { rabbitmqctl add_vhost $VHOST rabbitmqctl list_vhosts rabbitmqctl add_user $USER $PWD rabbitmqctl set_user_tags $USER administrator rabbitmqctl list_users } set_permissions() { rabbitmqctl set_permissions -p $VHOST $USER ".*" ".*" ".*" rabbitmqctl list_permissions -p $VHOST } set_exchanges() { rabbitmqadmin declare exchange --vhost=$VHOST --user=$USER --password=$PWD name=$INPUT_EX type=direct durable=true rabbitmqadmin declare exchange --vhost=$VHOST --user=$USER --password=$PWD name=$FAILED_INPUT_EX type=direct durable=true rabbitmqctl list_exchanges -p $VHOST } set_queues() { rabbitmqadmin declare queue --vhost=$VHOST --user=$USER --password=$PWD name=$QUEUE durable=true rabbitmqadmin declare queue --vhost=$VHOST --user=$USER --password=$PWD name=$FAILED_QUEUE durable=true rabbitmqctl list_queues -p $VHOST } set_bindings() { rabbitmqadmin declare binding --vhost=$VHOST --user=$USER --password=$PWD source=$INPUT_EX destination=$QUEUE rabbitmqadmin declare binding --vhost=$VHOST --user=$USER --password=$PWD source=$FAILED_INPUT_EX destination=$FAILED_QUEUE rabbitmqctl list_bindings -p $VHOST } type rabbitmqctl > /dev/null 2>&1 || { echo >&2 "rabbitmqctl is required but it is not installed. Aborting."; exit 1; } type rabbitmqadmis > /dev/null 2>&1 || { echo >&2 "rabbitmqadmin is required but it is not installed. Download from $URL, add .py extension and install into /usr/local/bin/rabbitmqadmin. Aborting."; exit 1; } set_user_and_vhost set_permissions set_exchanges set_queues set_bindings echo "Rabbitmq configured with success."