zoukankan      html  css  js  c++  java
  • CentOS7上面一键部署rabbitmq的简单方法

    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
    
    然后重启服务器验证. 
  • 相关阅读:
    CF Round 594
    [转载]CSP-J/S 第一轮知识点选讲
    10.17 模拟赛
    10.16 模拟赛
    10.15模拟赛
    10.14模拟赛
    10.12 模拟赛
    Peaks Gym 100365H
    手写Bitset优化
    Sums gym100753M
  • 原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/14210076.html
Copyright © 2011-2022 走看看