簡介
圍繞企業級服務部署與集群搭建,基于 OpenStack 私有云平臺,介紹了一系列關鍵服務的實操過程。內容涵蓋使用 CentOS7 系統部署 JumpServer 堡壘機并對接 controller 與 compute 節點,構建 RabbitMQ 集群(含磁盤節點與內存節點配置)、Kafka 集群及 ZooKeeper 集群等。每個服務的部署步驟清晰,包括環境配置、軟件安裝、參數調整及驗證方法,快速掌握多類服務與集群的搭建技巧。
1.應用部署:堡壘機部署
使用提供的 OpenStack 平臺下創建實例,使用提供的軟件包安裝 JumpServer 堡壘機服務,并配置使用該堡壘機對接自己安裝的 controller 和 compute 節點。軟件包:jumpserver.tar.gz
[root@jumpserver ~]# hostnamectl set-hostname jumpServer[root@jumpserver ~]# vi /etc/hosts 192.168.30.10 jumpServer 192.168.30.20 controller 192.168.30.30 compute[root@jumpserver ~]# setenforce 0[root@jumpserver ~]# sed -i s#SELINUX=enforcing#SELINUX=disabled# ? /etc/selinux/config[root@jumpserver ~]# iptables -F[root@jumpserver ~]# iptables -X[root@jumpserver ~]# iptables -Z[root@jumpserver ~]# /usr/sbin/iptables-save[root@jumpserver ~]# tar -zxvf jumpserver.tar.gz -C /opt/1.#配置源[root@jumpserver ~]# mv /etc/yum.repos.d/* /home/[root@jumpserver ~]# vi /etc/yum.repos.d/jumpserver.repo [jumpserver]name=jumpserverbaseurl=file:///opt/jumpserver-repogpgcheck=0enabled=1[root@jumpserver ~]# yum repolist2.#安裝依賴環境[root@jumpserver ~]# yum install python2 -y3.#安裝ocker[root@jumpserver ~]# cp /opt/docker/* /usr/bin/[root@jumpserver ~]# chmod 775 /usr/bin/docker*[root@jumpserver ~]# cp -rf /opt/docker.service /etc/systemd/system/[root@jumpserver ~]# chmod 755 /etc/systemd/system/docker.service[root@jumpserver ~]# systemctl daemon-reload[root@jumpserver ~]# systemctl enable docker --now[root@jumpserver ~]# docker --versionDocker version 18.06.3-ce, build d7080c1[root@jumpserver ~]# docker-compose --versiondocker-compose version 1.27.4, build 40524192?4.#安裝jumpserver#加載鏡像[root@jumpserver ~]# cd /opt/images/[root@jumpserver images]# sh load.sh#創建jumpsersver服務組建目錄[root@jumpserver images]# mkdir -p /opt/jumpserver/{core,koko,lion,mysql,nginx,redis}[root@jumpserver images]# cp -rf /opt/config /opt/jumpserver/啟動前清理:docker rm -f $(docker ps -aq)啟動: 如未啟動,多啟動幾次 [root@jumpserver images]# cd /opt/compose/[root@jumpserver compose]# source /opt/static.env[root@jumpserver compose]# sh up.sh ? ? ? ? ? ? ? ? ???使用谷歌瀏覽器訪問http://192.168.30.10對接controller與compute(admin/admin)設置中文字符?資產管理---管理用戶---創建----遠程連接用戶名稱:rootroot,000000?資產管理---系統用戶---創建----SSHweb,root,81,000000?資產列表----創建controller----IP:192.168.30.20 ----Linux----22---管理用戶:root---節點:/Defaultcontroller----IP:192.168.30.30 ----Linux----22---管理用戶:root---節點:/Default刷新?創建資產授權規則:權限管理----資產授權cloud server----用戶----用戶組----資產----節點----系統用戶?測試連接:(刷新)右上角----管理員---用戶界面等待幾分鐘-------5分鐘左右自動連接上Web終端---選擇我的資產---Default---controller---連接單機controller,連接主機成功
2.部署RabbitMQ集群
使用OpenStack私有云平臺,創建三個centos7.5系統的云主機rabbitmq1、rabbitmq2和rabbitmq3,使用附件\私有云附件\RabbitMQ目錄下的軟件包安裝RabbitMQ服務,安裝完畢后,搭建RabbitMQ集群,并打開RabbitMQ服務的圖形化監控頁面插件。集群使用普通集群模式,其中rabbitmq1做磁盤節點,rabbitmq2和rabbitmq3做內存節點。
創建三個節點,分別為mq1,mq2,mq3修改hosts文件,改名 (三個節點)Vi /ect/hosts關閉防火墻,selinux (三個節點)systemctl stop firewalldsetenforce 0getenforce配置好yum源,然后安裝yum install -y rabbitmq-server?[root@mq1 bin]# rabbitmq-plugins enable rabbitmq_management ? #啟用管理服務[root@mq2 bin]# rabbitmq-plugins enable rabbitmq_management ? #啟用管理服務[root@mq3 bin]# rabbitmq-plugins enable rabbitmq_management ? #啟用管理服務[root@ mq1 ~]# systemctl start rabbitmq-server[root@ mq1 ~]#scp -rp /var/lib/rabbitmq/.erlang.cookie mq2:/var/lib/rabbitmq/[root@ mq1 ~]#scp -rp /var/lib/rabbitmq/.erlang.cookie mq3:/var/lib/rabbitmq/[root@ mq2 ~]#chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie[root@ mq3 ~]#chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie重啟rabbitmq服務(二個節點)[root@mq2 bin]# systemctl restart rabbitmq-server[root@mq3 bin]# systemctl restart rabbitmq-server?mq2加入集群[root@mq2 bin]# rabbitmqctl stop_app #停止Stopping rabbit application on node rabbit@mq2[root@mq2 bin]# rabbitmqctl join_cluster --ram rabbit@mq1 ? ###將mq2連接到mq1,成為一個集群Clustering node rabbit@mq2 with rabbit@mq1[root@mq2 bin]# rabbitmqctl start_app ? #啟動檢查集群狀態 [root@mq2 bin]# rabbitmqctl cluster_status?mq3加入集群[root@mq3 bin]# rabbitmqctl stop_app #停止Stopping rabbit application on node rabbit@mq3[root@mq3 bin]# rabbitmqctl join_cluster --ram rabbit@mq1 ? ###將mq3連接到mq1,成為一個集群Clustering node rabbit@mq3 with rabbit@mq1[root@mq3 bin]# rabbitmqctl start_app ? #啟動檢查集群狀態[root@mq3 bin]# rabbitmqctl cluster_status?打開瀏覽器訪問http://192.168.200.7:15672/用戶名:guest 密碼:guest?
3.部署zookeep集群與kafka集群
penstack創建三臺 云主機,使用 提供的軟件包,將這三臺云主機構建為 kafka 集群。軟件包gpmall-single.tar.gz
#配置基礎環境tar -zxvf gpmall-single.tar.gz -C /opt/vi /etc/yum.repos.d/local.repo-----------------[gpmall]name=gpmallbaseurl=ftp://192.168.30.10/gpmall-single/gpmall-repogpgcheck=0enabled=1#centos可以使用openstack的yum[centos]name=centosbaseurl=ftp://192.168.30.10/centosgpgcheck=0enabled=1-----------------#搭建zookeepertar -zxvf zookeeper-3.4.14.tar.gz -C /usr/local/cd /usr/local/zookeeper-3.4.14/conf/mv zoo_sample.cfg zoo.cfgvi zoo.cfg#修改dataDir=/usr/local/zookeeper-3.4.14/data#添加server.0=192.168.30.10:2888:3888server.1=192.168.30.20:2888:3888server.2=192.168.30.30:2888:3888------------------------------------------#在zookeeper中創建data目錄mkdir /usr/local/zookeeper-3.4.14/data/vi /usr/local/zookeeper-3.4.14/data/myid#添加 0#傳送至其他兩臺云主機scp -r /usr/local/zookeeper-3.4.14/ t2:/usr/local/scp -r /usr/local/zookeeper-3.4.14/ t3:/usr/local/#修改其他兩臺的myid 1、2#啟動集群(三個節點都啟動)cd /usr/local/zookeeper-3.4.14./bin/zkServer.sh start#驗證創建myid文件
在3臺機器dataDir目錄(此處為/tmp/zookeeper)下,分別創建一個myid文件,文件內容分別只有一行,其內容為1,2,3。即文件中只有一個數字,這個數字即為上面zoo.cfg配置文件中指定的值。ZooKeeper是根據該文件來決定ZooKeeper集群各個機器的身份分配。
---------------------[root@node1 ~]# mkdir /tmp/zookeeper
[root@node1 ~]# echo 1 > /tmp/zookeeper/myid
[root@node2 ~]# mkdir /tmp/zookeeper
[root@node2 ~]# echo 2 > /tmp/zookeeper/myid
[root@node3 ~]# mkdir /tmp/zookeeper
[root@node3 ~]# echo 3 > /tmp/zookeeper/myid
[root@node1 ~]# ssh.sh "./zookeeper-3.4.14/bin/zkServer.sh start"[root@t1 zookeeper-3.4.14]# ./bin/zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /usr/local/zookeeper-3.4.14/bin/../conf/zoo.cfgMode: follower[root@t2 zookeeper-3.4.14]# ./bin/zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /usr/local/zookeeper-3.4.14/bin/../conf/zoo.cfgMode: leader[root@t3 zookeeper-3.4.14]# ./bin/zkServer.sh statusZooKeeper JMX enabled by defaultUsing config: /usr/local/zookeeper-3.4.14/bin/../conf/zoo.cfgMode: follower
#搭建kafka
tar -zxvf kafka_2.11-1.1.1.tgz -C /usr/local/
cd usr/local/kafka_2.11-1.1.1
vi config/server.properties
----------------
broker.id=0
listeners=PLAINTEXT://192.168.30.10:9092
zookeeper.connect=192.168.30.10,192.168.30.20,192.168.30.30:2181
----------------
#t2
broker.id=1
listeners=PLAINTEXT://192.168.30.20:9092
zookeeper.connect=192.168.30.10,192.168.30.20,192.168.30.30:2181
----------------
#t3
broker.id=2
listeners=PLAINTEXT://192.168.30.30:9092
zookeeper.connect=192.168.30.10,192.168.30.20,192.168.30.30:2181
----------------
#命令解析:
broker.id:每臺機器不能一樣。
zookeeper.connect:因為有3臺ZooKeeper服務器,所以在這里zookeeper.connect設置為3臺。
listeners:在配置集群的時候,必須設置,不然以后的操作會報找不到leader的錯誤。
#啟動(三個節點)
[root@zookeeper1 bin]# ./kafka-server-start.sh -daemon ../config/server.properties
[root@zookeeper1 bin]# jps
11825 Kafka
11418 QuorumPeerMain
12191 Jps