zl程序教程

您现在的位置是:首页 >  系统

当前栏目

CentOS7上面一键部署rabbitmq的简单方法

centos7方法部署RabbitMQ 简单 一键 上面
2023-09-27 14:24:15 时间

1. rabbitmq的安装部署比redis之类的要麻烦一些. 主要是他是基于erlang写的 而不是基于c或者是c++写的

2. 很多时候编译需要添加很多组件, 但是一些机器可能不会让添加这么多的组建进行处理. 所以得换一个比较简单的方法执行. 

3. 首先在一台能够上网, 能够安装yum的机器上面安装 rabbitmq 必须要的组件 注意 我这边选择的机器是 CentOS7 发现  编译出来的文件放到 CentOS8上面启动会失败. 

yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc

4. 然后下载 erlang和rabbitmq的 源码tar包.

注意 我这次将 源码包放到了 

/opt/apps/rabbitmq3.7.12/ 目录下面
其中 erlang的在这个目录下面的作为二级目录存在. 然后 rabbitmq 直接作为一个完整文件夹存在. 

这个目录很关键, 不然那移动了无法使用,. 

http://erlang.org/download/otp_src_21.2.tar.gz
https://github-production-release-asset-2e65be.s3.amazonaws.com/924551/48b04b00-3118-11e9-8972-ce191046d204?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20201229%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20201229T082447Z&X-Amz-Expires=300&X-Amz-Signature=28e656748cf46508ff5d48035fc9e8c2f35e0c0bc18bc379ef1aaf23054713a7&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=924551&response-content-disposition=attachment%3B%20filename%3Drabbitmq-server-generic-unix-3.7.12.tar.xz&response-content-type=application%2Foctet-stream

注意这个可以参照 rabbitmq 与 erlang兼容支持的版本, 我这边直接下了这个版本进行.

 

5. 解压缩之后在 erlang和rabbitmq 里面执行相关的安装

注意 configure 的时候 不要加任何参数, 避免将安装后的文件 转移到其他目录. 
configure 之后 执行make 操作.

6. 将 erlang 目录下面的 bin 和 lib 之外的文件夹移除. 缩小文件件大小.

文件目录以及效果为:

 

 整个rabbitmq 的目录为:

 

 

7. 然后验证服务能否启动, 编译安装的东西比较全, 应该可以启动成功

注意可能没有 libtinfo.so.5 这个文件夹, 建议从 /usr/lib64/ 下面将文件放置到如下目录

验证了下 ubuntu1804和 centos8 还需要将这个文件:libcrypto.so.10 一起放进来. 

/opt/apps/rabbitmq3.7.12/otp_src_21.2/lib

8. 可以编写一个文件 第一步 设置 环境变量相关信息

vim /opt/apps/rabbitmq3.7.12/.bashrc

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
export PATH=$PATH:/opt/apps/rabbitmq3.7.12/otp_src_21.2/bin:/opt/apps/rabbitmq3.7.12/sbin:/opt/apps/rabbitmq3.7.12/otp_src_21.2/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/apps/rabbitmq3.7.12/otp_src_21.2/lib
# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=

# User specific aliases and functions

第二步 编写一个自动启动的 初始化脚本

cd /opt/apps/rabbitmq3.7.12
scp .bashrc ~/
source ~/.bashrc
#ln -s  /opt/apps/rabbitmq3.7.12/otp_src_21.2/lib/libtinfo.so.5 /usr/lib64/libtinfo.so.5
cd /opt/apps/rabbitmq3.7.12
rabbitmq-server -detached
sleep 10
rabbitmqctl add_user admin Test1127
rabbitmqctl set_user_tags admin  administrator
rabbitmqctl  set_permissions -p / admin  '.*' '.*' '.*'
rabbitmq-plugins enable rabbitmq_management

给这个文件赋予执行权限, 并且一起打包. 

[gscloud@k8smaster apps]$ pwd
/opt/apps
[gscloud@k8smaster apps]$ ll
total 116328
drwxr-xr-x 12 gscloud gscloud      4096 Dec 30 10:12 rabbitmq3.7.12
-rw-rw-r--  1 gscloud gscloud 119115474 Dec 30 09:50 rabbitmq3.7.12.tar.gz
[gscloud@k8smaster apps]$ tar -czvf rabbitmq3.7.12.tar.gz  rabbitmq3.7.12

9. 将文件 挪到 其他服务器的 /opt/apps 目录下

注意 需要添加一个非 root用户. 并且给普通用户赋予足够的执行权限. 

chown gscloud:gscloud /opt/apps -R 

10 在如下目录执行命令:

/opt/apps/rabbitmq3.7.12

./init.sh

11. 打开浏览器验证

 

 12 设置开机启动

这个比较简单 但是为了上面能用 需要先设置一下防火墙和计划任务

systemctl  disable firewalld
systemctl stop firewalld
systemctl enable crond
systemctl  restart crond

修改一下计划任务 在gscloud的用户下

crontab -e 
# 打开计划任务
输入:
@reboot source /home/gscloud/.bashrc && /opt/apps/rabbitmq3.7.12/sbin/rabbitmq-server -deatch

然后重启服务器验证.