CentOS mini 7下離線安裝rabbitmq

公司的開發環境沒有聯網,想要從一臺嶄新的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

 

配置權限

https://www.cnblogs.com/furenjian/p/11498434.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章