FEBS-Cloud 部署文檔


部署之前

部署前我們需要准備如下內容:

  1. 使用FinalShell連接你的CentOS 7服務器;

  2. 將群文件里的febs.tar發送至服務器的\(根)目錄下;

    image-20201202201535930

  3. \目錄下執行命令tar -xvf febs.tar解開壓縮包,你可以在根目錄下看到/febs

  4. 安裝docker、docker-compose

  5. 為docker換源

1. CentOS7 服務器配置JDK8

  1. JDK的位置放在/febs/third-party/jdk,我提供了原來的壓縮包;

  2. 進入上述目錄,使用命令解壓tar -xvf jdk-8u271-linux-x64.tar.gz(輸到jdk的時候,可以按tab補全)

  3. 接下來直接在profile配置JDK的絕對路徑,再手動生效即可:

    [root@localhost ~]# vim /etc/profile (若此時沒有vim命令,可以使用命令“yum install vim”安裝vim)
    ## ---
    ## 以下為/etc/profile的文件內容
    
    ## 在文件最后添加下面四行內容保存即可
    export JAVA_HOME=/febs/third-part/jdk/jdk1.8.0_271
    export JRE_HOME=$JAVA_HOME/jre
    export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
    
    [root@localhost ~]#
    [root@localhost ~]# source /etc/profile # 讓配置文件生效
    [root@localhost ~]# java -version # 查看JDK版本
    java version "1.8.0_271"
    Java(TM) SE Runtime Environment (build 1.8.0_271-b09)
    Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09, mixed mode)
    

2. Docker啟動第三方服務(MySQL、Redis、MongoDB)

進入/febs/third-party目錄,可以看到里面有一個docker腳本docker-compose.yml,腳本可以自動化下載鏡像、啟動容器,具體內容如下:

version: '3'

services:
  mysql:
    image: mysql:5.7.24 # 指定MySQL版本
    container_name: mysql
    restart: always # 啟動容器時,MySQL容器會自動啟動
    environment:
      MYSQL_ROOT_PASSWORD: 123456 # root密碼
    ports:
      - 3306:3306 # 映射端口
    volumes:
      - /febs/third-part/mysql/data:/var/lib/mysql # 掛載 MySQL數據
  redis:
    image: redis:4.0.14
    container_name: redis
    restart: always
    command: redis-server /usr/local/etc/redis/redis.conf --appendonly yes
    volumes:
      - /febs/third-part/redis/data:/data # 掛載 Redis數據
      - /febs/third-part/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf # 掛載 Redis配置
    ports:
      - 6379:6379
  mongo:
    image: mongo
    container_name: mongodb
    restart: always
    ports:
      - 27017:27017
    volumes:
      - /febs/third-part/mongodb:/data/db # 掛載 MongoDB數據

/febs/third-party目錄下,執行命令docker-compose up -d,docker會自動拉取指定版本的鏡像,並按照腳本設定,啟動指定容器。等腳本執行完成,使用命令docker ps可以查看當前正在運行的容器。

使用命令systemctl enable docker,設置docker服務開機自啟,那么每當虛擬機啟動時,docker就啟動了,DB服務也就啟動了。

image-20201202215714259

3. 導入數據庫表信息

完成上述步驟,我們在虛擬機已經啟動MySQL服務了,接下來我們使用Navicat去連接它。

image-20201202220431016

接下來導入主系統數據,新建一個名稱為febs_cloud_base的數據庫,導入sql/febs_cloud_base.sql

image-20201202221239443

image-20201202221652566

按照同樣的方法,新建一個名稱為febs_nacos的數據庫,導入sql/febs_nacos.sql,這里演示步驟省略。

4. 啟動第三方動態配置中心 Alibaba Nacos

由於Nacos本身也是Java程序,在做這一步前,確保JDK環境已經配置完成了。

進入/febs/third-part/nacos/conf目錄,編輯application.propertiesNacos配置文件。

使用vim application.properties進入編輯界面,將{xxxxx}部分替換成你虛擬機的IP地址,例如我這里填寫192.168.2.131

image-20201202222542510

修改完以后保存退出編輯界面,在FinalShell下面的”命令“工具欄,右擊”添加命令 “,添加內容如下:

image-20201202222857064

編輯完成后確定,點擊剛剛創建的命令“啟動nacos”,即可啟動Nacos服務。此時訪問http://{虛擬機IP}:8001/nacos/index.html即可進入Nacos管理頁面。賬戶:febs,密碼:123456。

image-20201202225342141

(P.S. 若此時無法進入此頁面,請檢查防火牆是否啟動,若啟動則需要關閉,關閉的命令如下)

[root@localhost third-part]# systemctl status firewalld  # 檢查防火牆是否啟動,若為active,即為啟動
[root@localhost third-part]# systemctl stop firewalld  # 關閉防火牆
[root@localhost third-part]# systemctl disable firewalld  # 關閉防火牆開機自啟服務 
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

至此,配置中心的啟動完成。

5. 生成Docker鏡像,啟動FEBS-Cloud微服務系統

這一步是啟動系統的最后一步。

首先,我們需要為每個微服務組件生成鏡像,下面是整個工程在微服務架構中的功能名稱。

image-20201202230316415

我們只需要為上述7個組件打包進行即可,下面我以febs-auth微服務鑒權中心為例,其余6個組件的打包過程是一致的。

進入/febs/febs-auth目錄,目錄下有一個名為Dockerfile的文件,是自動化打包的預設腳本,其中的內容如下:

FROM openjdk:8u212-jre
MAINTAINER SuphxLin kiols6@aliyun.com

COPY febs-auth-2.2-RELEASE.jar /febs/febs-auth-2.2-RELEASE.jar

ENTRYPOINT ["java", "-Xmx512m", "-jar", "/febs/febs-auth-2.2-RELEASE.jar"]

使用命令對目錄下的jar包打包,docker build -t febs-auth .,命令中的“febs-auth”即為鏡像的名稱,后序的6個鏡像,請嚴格按照文件夾的名字命名,這后序會影響微服務啟動使用的docker-compose.yml。打包過程由Docker自動完成,例如jar包需要的Java依賴,在Dockerfile中也以及指定了JDK版本,容器會自動創建一個JDK環境。之前換源的目的,也是為了在加快下載容器內的依賴。

image-20201202231121630

以上,即完成了一個鏡像的打包,下面貼出其他鏡像打包的代碼,請到對應的文件夾下執行打包命令:

docker build -t febs-auth .
docker build -t febs-admin .
docker build -t febs-gateway .
docker build -t febs-server-system .
docker build -t febs-server-test .
docker build -t febs-tx-manager .
docker build -t febs-cloud-web .

(P.S. febs目錄下還有generator和job兩個服務,比較吃內存,我就沒有加入docker-compose.yml中,這里也沒有打包,如果有興趣嘗試,也可以參照上述的打包方式)

打包完成后,使用命令docker images,查看所有鏡像:

image-20201202232419384

最后,進入febs/febs-cloud/目錄,根據你的虛擬機IP,你需要修改docker-compose.yml的一些配置,使用命令vim docker-compose.yml 下面配置中所有含有IP地址的,均換成你自己虛擬機的IP地址即可:

version: '3'

services:
  febs-admin:
    image: febs-admin:latest
    container_name: febs-admin
    volumes:
      - "/febs/log:/log"
    command:
      - "--nacos.url=192.168.2.131"
    environment:
      - "TZ=Asia/Shanghai"
    ports:
      - 8401:8401
  febs-gateway:
    image: febs-gateway:latest
    container_name: febs-gateway
    volumes:
      - "/febs/log:/log"
    command:
      - "--febs-admin=192.168.2.131"
      - "--mongo.url=192.168.2.131"
      - "--nacos.url=192.168.2.131"
      - "--redis.url=192.168.2.131"
    environment:
      - "TZ=Asia/Shanghai"
    ports:
      - 8301:8301
  febs-auth:
    image: febs-auth:latest
    container_name: febs-auth
    volumes:
      - "/febs/log:/log"
    command:
      - "--febs-admin=192.168.2.131"
      - "--nacos.url=192.168.2.131"
      - "--mysql.url=192.168.2.131"
      - "--redis.url=192.168.2.131"
    environment:
      - "TZ=Asia/Shanghai"
    ports:
      - 8101:8101
  febs-server-system:
    image: febs-server-system:latest
    container_name: febs-server-system
    volumes:
      - "/febs/log:/log"
    command:
      - "--febs-admin=192.168.2.131"
      - "--febs-gateway=192.168.2.131"
      - "--nacos.url=192.168.2.131"
      - "--mysql.url=192.168.2.131"
      - "--febs-tx-manager=192.168.2.131"
    environment:
      - "TZ=Asia/Shanghai"
    ports:
      - 8201:8201
    depends_on:
      - febs-tx-manager
  febs-server-test:
    image: febs-server-test:latest
    container_name: febs-server-test
    volumes:
      - "/febs/log:/log"
    command:
      - "--nacos.url=192.168.2.131"
      - "--febs-admin=192.168.2.131"
      - "--mysql.url=192.168.2.131"
      - "--febs-tx-manager=192.168.2.131"
      - "--febs-gateway=192.168.2.131"
    environment:
      - "TZ=Asia/Shanghai"
    ports:
      - 8202:8202
    depends_on:
      - febs-tx-manager
  febs-tx-manager:
    image: febs-tx-manager:latest
    container_name: febs-tx-manager
    volumes:
      - "/febs/log:/log"
    command:
      - "--nacos.url=192.168.2.131"
      - "--febs-admin=192.168.2.131"
      - "--mysql.url=192.168.2.131"
      - "--redis.url=192.168.2.131"
    environment:
      - "TZ=Asia/Shanghai"
    ports:
      - 8501:8501
      - 8888:8888
  febs-cloud-web:
    image: febs-cloud-web
    container_name: febs-cloud-web
    volumes:
      - "/febs/log:/log"
    environment:
      - "TZ=Asia/Shanghai"
    ports:
      - 9527:80

使用命令docker-compose up -d,自動化啟動FEBS-Cloud微服務權限管理系統。

(P.S. 如出現:ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule: (iptables failed: iptables --wait -t nat -I DOCKER -i br-4a3e20ec967f -j RETURN: iptables: No chain/target/match by that name. (exit status 1)),那應該是你剛剛關閉了防火牆,那么你需要使用命令 systemctl restart docker,重啟docker服務)

啟動后,你需要等待一會兒,等到FinalShell顯示的CPU降低后,訪問:http://{你虛擬機的IP}:9527,即可登錄到FEBS-Cloud微服務權限管理系統,賬戶:mrbird,密碼:1234qwer。

教程結束!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM