公司的開發環境沒有聯網,想要從一臺嶄新的mini centos7安裝rabbitmq。用於後續的開發,由於對linux一點不懂,被這個依賴包的問題折磨完了。
不過最終還是找到一個辦法。
centos下一些命令需要的rpm包可以在此網站下載。
http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/
比如gcc,autoconf等命令。
但是這種適合單獨下載某個指定的rpm。但是無法處理關聯的依賴問題。所以最簡單的還是通過yum這種方式去下載到指定文件夾,自動處理依賴關係。
首先找到一臺能聯網的虛擬機,安裝一個插件。
yum install yum-plugin-downloadonly
下載需要的rpm到指定文件夾。
yum -y install --downloadonly --downloaddir=/opt/rpm perl gcc
找到指定文件夾,將rpm移到離線的虛擬機裏。然後統一安裝rpm。
rpm -ivh *.rpm --force --nodeps
本文就是基於此方法來安裝erlang所需要的依賴。
進入正題。
準備erlang所需的rpm包
準備rpm包
安裝erlang需要下面一些插件的支持。
gcc gcc-c++ unixODBC-devel openssl-devel ncurses-devel perl
所以要提前通過能聯網的機器通過文章開始說明的方式下載好這些rpm。
yum -y install --downloadonly --downloaddir=/opt/rpm gcc gcc-c++ unixODBC-devel openssl-devel ncurses-devel perl
將這些rpm轉移到離線虛擬機下。然後統一安裝這些rpm包。
rpm -ivh *.rpm --force --nodeps
安裝erlang
rabbitmq需要erlang環境,所以需要先下載erlang源碼包。
我要安裝的是3.8.0版本的rabbitmq,去rabbitmq官網查看對應的erlang版本。選擇了22.1版本。於是官網下載此版本erlang。
otp_src_22.1.tar.gz
將官網下載的源碼包,下載後轉移到centos中。準備解壓源碼包。
tar -xzvf otp_src_22.1.tar.gz
將源碼解壓的文件夾轉移到 usr/local內,畢竟是比較重要的軟件。類似於windows的C:\Program Files
mv otp_src_22.1 /usr/local/
進入到解壓後的文件夾。準備編譯。
[root@zbh rabbitmq]# cd /usr/local/otp_src_22.1/
創建一個erlang文件夾,準備放編譯後的文件。
mkdir ../erlang
執行configure文件夾,生成makefile文件,配置安裝路徑。
./configure --prefix=/usr/local/erlang --without-javac
出現下圖,不影響,繼續進行。因爲我們沒有java環境。
編譯安裝到剛纔指定的erlang中,此過程很慢。
make && make install
添加環境變量到profile文件中
echo 'export PATH=$PATH:/usr/local/erlang/bin' >> /etc/profile
刷新剛纔添加的環境變量
[root@zbh erlang]# source /etc/profile
此時就完成了erlang的安裝,測試一下。
[root@zbh erlang]# erl
Erlang/OTP 22 [erts-10.5] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1]
Eshell V10.5 (abort with ^G)
1> halt().
[root@zbh erlang]#
或者輸入erl的版本。
[root@zbh erlang]# erl -version
Erlang (SMP,ASYNC_THREADS) (BEAM) emulator version 10.5
安裝RabbitMQ
官網下載rabbitmq的3.8.0的源碼包。
注意要下載源碼包。
rabbitmq-server-generic-unix-3.8.0.tar.xz
因爲它是xz文件,需要先轉換爲tar文件。
[root@zbh rabbitmq]# xz -d rabbitmq-server-generic-unix-3.8.0.tar.xz
此時就變成了tar 文件。
-rw-r--r--. 1 root root 86643553 Jun 24 21:42 otp_src_22.1.tar.gz
-rw-r--r--. 1 root root 13619200 Jun 24 21:42 rabbitmq-server-generic-unix-3.8.0.tar
解壓rabbitmq-server包。
[root@zbh rabbitmq]# tar -xvf rabbitmq-server-generic-unix-3.8.0.tar
轉移到/usr/local中
[root@zbh rabbitmq]# mv rabbitmq_server-3.8.0/ /usr/local/
配置環境變量
[root@zbh local]# echo 'export PATH=$PATH:/usr/local/rabbitmq_server-3.8.0/sbin' >> /etc/profile
刷新環境變量
[root@zbh local]# source /etc/profile
到這就完成了rabbitmq的安裝。
常用命令
啓動rabbitmq
rabbitmq-server -detached
停止rabbitmq
rabbitmqctl stop
查看rabbitmq狀態
rabbitmqctl status
下面代碼說明了已經開啓了3個端口,5672,25672,15672(管理頁面的端口,我提前開啓了)
Totals
Connection count: 0
Queue count: 0
Virtual host count: 1
Listeners
Interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication
Interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0
Interface: [::], port: 15672, protocol: http, purpose: HTTP AP
查看rabitmq狀態,如果出現下方代碼
rabbit@zbh:
* connected to epmd (port 4369) on zbh
* epmd reports node 'rabbit' uses port 25672 for inter-node and CLI tool traffic
* can't establish TCP connection to the target node, reason: timeout (timed out)
* suggestion: check if host 'zbh' resolves, is reachable and ports 25672, 4369 are not blocked by firewall
找到 /etc/hosts文件,第一行後邊添加你的主機名 zbh 即可.
配置rabbitmq
開啓web管理頁面的插件
rabbitmq-plugins enable rabbitmq_management
這時候主機訪問192.168.182.10:15672就可以打開web管理頁面。(保證端口開放給主機,或者關閉防火牆)
配置賬號
guest的賬號從3.3.0開始僅允許本機訪問,不允許遠程訪問。可以修改配置文件解決這個問題,但爲了安全,暫時不需要。直接創建其它管理員賬號。
添加用戶,設置角色,賦予權限的命令
查看用戶
[root@zbh local]# rabbitmqctl list_users
Listing users ...
user tags
guest [administrator]
添加用戶
[root@zbh local]# rabbitmqctl add_user zhengbh 123456
Adding user "zhengbh" ...
配置權限
賦予zhengbh 在 / 虛擬主機上配置消息,讀和寫的權限。
[root@zbh local]# rabbitmqctl set_permissions -p "/" zhengbh ".*" ".*" ".*"
Setting permissions for user "zhengbh" in vhost "/" ...
查看用戶權限
[root@zbh local]# rabbitmqctl list_user_permissions zhengbh
Listing permissions for user "zhengbh" ...
vhost configure write read
/ .* .* .*
給用戶設置tag,也即是用戶的角色
[root@zbh local]# rabbitmqctl set_user_tags zhengbh administrator
Setting tags for user "zhengbh" to [administrator] ...
至此基本完成了rabbitmq的安裝和配置。再一次登陸zhengbh賬號試試。
但是每次重新啓動都需要重新開啓rabbitmq服務。
rabbitmq-server -detached
沒有設置自動啓動,需要編寫啓動文件。暫時先不研究了。
安裝延時插件
延時任務需要用到的延時插件,github上下載,直接拖到rabbitmq安裝文件夾下的plugins下。
啓動延時插件
[root@zbh local]# rabbitmq-plugins enable rabbitmq_delayed_message_exchange
[root@zbh local]# rabbitmq-plugins enable rabbitmq_delayed_message_exchange
Enabling plugins on node rabbit@zbh:
rabbitmq_delayed_message_exchange
The following plugins have been configured:
rabbitmq_delayed_message_exchange
rabbitmq_management
rabbitmq_management_agent
rabbitmq_web_dispatch
Applying plugin configuration to rabbit@zbh...
The following plugins have been enabled:
rabbitmq_delayed_message_exchange
started 1 plugins.
本人安裝時用到的參考網址:
安裝erlang
https://www.jianshu.com/p/2187e03ad126
安裝rabbitmq
https://www.cnblogs.com/fengyumeng/p/11133924.html
配置權限