Skip to content

It's a simple bash script used for the installation of RabbitMQ and it's completely automated with a bash script

Notifications You must be signed in to change notification settings

yousafkhamza/rabbitmq-ubuntu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 

Repository files navigation

RabbitMQ Installation on Ubuntu..

Build


Description

What is RabbitMQ: RabbitMQ is an open-source message-broker software that originally implemented the Advanced Message Queuing Protocol and has since been extended with a plug-in architecture to support Streaming Text Oriented Messaging Protocol, MQ Telemetry Transport, and other protocols


Feature

  • Easy to install rabbitmq server on ubuntu
  • Completely automated with a bash script
  • All the dependencies are installed with the script and also included service enabling and starts on the servers
  • Please find the below manual installation steps are provided

Pre-Requests

  • Only supports ubuntu and Debian based OS
  • Basic knowledge of rabbitMQ Server
sudo apt install git -y

How to Get


git clone https://github.com/yousafkhamza/rabbitmq-ubuntu.git
cd rabbitmq-ubuntu
chmod +x rabbitmq.sh

Script running be like

ubuntu@ip-172-31-33-229:~$ ./rabbitmq.sh
# ------------------or---------------------- #
ubuntu@ip-172-31-33-229:~$ bash rabbitmq.sh

Output be like

Installation alt_txt

Already installed alt_txt


Behind the Code

#!/bin/bash

printf "\e[1;92m                   ____       _     _     _ _   __  __  ___     \e[0m\n"
printf "\e[1;92m                  |  _ \ __ _| |__ | |__ (_) |_|  \/  |/ _ \	\e[0m\n"
printf "\e[1;92m                  | |_) / _' | '_ \| '_ \| | __| |\/| | | | |	\e[0m\n"
printf "\e[1;92m                  |  _ < (_| | |_) | |_) | | |_| |  | | |_| |	\e[0m\n"
printf "\e[1;92m                  |_| \_\__,_|_.__/|_.__/|_|\__|_|  |_|\__\_\	\e[0m\n"
printf "\n"
printf "\e[1;77m\e[45m   RabbitMQ Installation Script for ubuntu Author: @yousafkhamza (Github|LinkedIn|Instagram)     \e[0m\n"
printf "\n"
sleep 1

ubuntu=$(grep -i "ubuntu" /etc/os-release | wc -l > 2&>1; echo $?)
rabbitmq=$(which rabbitmq-server > 2&>1; echo $?)

if [[ "$rabbitmq" -eq 0 ]]; then
	echo "RabbitMQ is already installed on the server so please remove the same manually......."
	exit 1
else
	# Installation started..........
	echo "RabbitMQ installation is started..........."
	sleep 1

	if [ -f /etc/os-release ] && [[ "$ubuntu" -eq 0 ]]; then
		echo ""
		echo "Dependency ERLANG installation started........."
		echo "If you're exited the script once you enter any values please retry the script once"
		echo ""
		sleep 1
		wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
		sudo dpkg -i erlang-solutions_1.0_all.deb 
			if [ $? -eq 0 ]; then
				echo ""
				echo "Dependancies installtion started and it take 5-10 minutes and it depends on your internet........"
				sleep 1
				sudo apt-get update -y
				sudo apt-get install -y erlang erlang-nox
				echo ""
			else
				echo ""
				echo "Your dependecy installation is failed so please go through the GitHub and iinstall the same as manual"
				echo "Manual installation steps https://github.com/yousafkhamza/rabbitmq-ubuntu/tree/main" 
				exit 1
			fi
		echo "RabbitMQ Repository adding to the repos........."
		echo 'deb http://www.rabbitmq.com/debian/ testing main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list
		wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -
			if [ $? -eq 0 ]; then
				echo ""
				echo "Repository adding successsfully.........."
				sleep 1
				echo ""
			else
				echo "" 
				echo "Repository adding failed......."
				echo "Manual installation steps https://github.com/yousafkhamza/rabbitmq-ubuntu/tree/main"
				exit 1
			fi
			
	# Dependancies installed succesfully
	# Update new repo once maybe you will get error
	sudo apt-get update -y > 2&>1

	# RabbitMQ Installation from the added repository
	sudo apt-get install -y rabbitmq-server
			if [ $? -eq 0 ]; then
				echo ""
				echo "RabbitMQ Installation successfull we are going to start and enable the services"
				sleep 1
				echo ""
			else
				echo "" 
				echo "RabbitMQ installtion failed......."
				echo "Manual installation steps https://github.com/yousafkhamza/rabbitmq-ubuntu/tree/main"
				exit 1
			fi
			
	# Service start section
	sudo systemctl start rabbitmq-server
			if [ $? -eq 0 ]; then
				echo ""
				echo "RabbitMQ services started successfully"
				sleep 1
				echo ""
			else
				echo "" 
				echo "Service starting failed....... Please check server ports......."
				echo "Manual installation steps https://github.com/yousafkhamza/rabbitmq-ubuntu/tree/main"
				ezit 1
			fi

	# Service status and enable
	status=$(sudo systemctl status rabbitmq-server > 2&>1; echo $?)
		if [[ "status" -eq 0 ]]; then
			echo ""
			echo " RabbitMQ Service enabling............"
			echo ""
			sudo rabbitmq-plugins enable rabbitmq_management
			sleep 1
			echo ""
		else
			echo "" 
			echo "Service enabling failed....... Please check server ports......."
			echo "Manual installation steps https://github.com/yousafkhamza/rabbitmq-ubuntu/tree/main"
			exit 1
		fi
		
	# RabbitMQ User and password setting
	sudo rabbitmqctl add_user admin password 
		if [[ $? -eq 0 ]]; then
			echo ""
			echo "Global password is setting for your RabbitMQ GUI............"
			echo "Global Username is 'admin', Password is 'password'"
			echo "After setup please reset with a tough password......."
			echo ""
			sleep 1
			sudo rabbitmqctl set_user_tags admin administrator
			sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
			echo ""
			echo "Installation is successfull. Please login to your RabbitMQ GUI......"
			echo "Please use the below URL or check with net-tools like netstat netstat -ntlp"
			ip=$(curl ifconfig.io)
			echo ""
			echo "http://$ip:15672/ Please check the same with admin and password."
			sleep 1
		else
			echo "" 
			echo "Admin password setting is failed........."
			echo "Manual installation steps https://github.com/yousafkhamza/rabbitmq-ubuntu/tree/main"
			exit 1
		fi
	else
		echo ""
		echo "The script is only support with ubuntu 16-20 version so you may please check the manual installation steps"
		echo "Manual installation steps https://github.com/yousafkhamza/rabbitmq-ubuntu/tree/main"
		exit 1
	fi
fi

Manual Installation steps RabbitMQ on Ubuntu

==================================================

Install Erlang


wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
sudo dpkg -i erlang-solutions_1.0_all.deb
sudo apt-get update -y
sudo apt-get install -y erlang erlang-nox

Add RabbitMQ apt repository


echo 'deb http://www.rabbitmq.com/debian/ testing main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list
wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -

Update the package list


sudo apt-get update -y

Install RabbitMQ


sudo apt-get install -y rabbitmq-server

Start RabbitMQ


sudo systemctl start rabbitmq-server

Check RabbitMQ status


sudo systemctl status rabbitmq-server

Enable RabbitMQ service so it starts on boot


sudo systemctl enable rabbitmq-server

Setup RabbitMQ Web Management Console


sudo rabbitmq-plugins enable rabbitmq_management

Single RabbitMQ Instances


Create Admin User in RabbitMQ

sudo rabbitmqctl add_user admin password 
sudo rabbitmqctl set_user_tags admin administrator
sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

Enable SSL (Optionel this not included on the script)


Enable RabbitMQ and Management SSL

[
 {rabbit, [
 {ssl_listeners, [5671]},
 {ssl_options, [{cacertfile,"/path/to/cacertfile"},
 {certfile,"/path/to/certfile"},
 {keyfile,"/path/to/keyfile"},
 {verify,verify_peer},
 {fail_if_no_peer_cert,true}]}
 ]},
 {rabbitmq_management, [
 {listener, [{port, 15671},
 {ssl, true},
 {ssl_opts, [{cacertfile, "/path/to/cacertfile"},
             {certfile,   "/path/to/certfile"},
             {keyfile,    "/path/to/keyfile"}]}
            ]
 }
 ]}
].

Reference

Reference URL's

Conclusion

It's a simple bash script used for the installation of rabbitmq and it's completely automated with a bash script.

⚙️ Connect with Me


About

It's a simple bash script used for the installation of RabbitMQ and it's completely automated with a bash script

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages