天天看點

.net core系統跨平台部署手冊

前言

 .net core跨平台版本基于.net core 3.1 SDK開發,剝離原來的基于MS Office進行文檔轉換功能的子產品,使用基于開源跨平台的LibreOffice進行文檔轉換的子產品。以此實作跨平台部署。由于LibreOffice同時隻能有一個程序進行文檔轉換,為了提高轉換效率,引入Docker進行LibreOffice轉換程序隔離。經過測試,目前支援Windows和Linux作業系統。

Windows部署系統

  1. 推薦使用Windows Server2016和Windows Server2019伺服器作業系統及Windows10桌面版作業系統(Docker隻支援這些系統)。
  2. 為了開發調試友善以及簡單化部署(對轉換性能要求不高),系統也支援免Docker部署,這種場景下一次隻能轉換一個文檔,需要作業系統安裝LibreOffice。支援的作業系統為Windows Server 2008、Windows Server 2012伺服器作業系統及Windows7桌面版作業系統。
  3. 基于Docker部署流程

(1)     安裝作業系統。

(2)     安裝MySQL8.0資料庫。

(3)     安裝.NET Core 3.1 SDK。

(4)     安裝Docker for Windows Desktop。

(5)     導入docker轉換鏡像。(參考下文導入Docker鏡像)

(6)     解壓縮程式到指定目錄。

(7)     修改程式目錄下appsettings.json檔案,将ConvertSetting節點下的ConcurrentCounts(同時轉換文檔數量,即Docker執行個體數量)設定為合适的值。建議該值設定為CPU核心數,最小1,最大32。

(8)     初始化資料庫表結構。

(9)     建立服務。

(10)  啟動服務。

(11)  登入系統,進行系統授權。

  1. 免Docker部署流程

(1)     安裝作業系統。

(2)     安裝MySQL8.0資料庫。

(3)     安裝.NET Core 3.1 SDK。

(4)     安裝LibreOffice。

(5)     解壓縮管理端程式到指定目錄。

(6)     修改程式目錄下appsettings.json檔案,将ConvertSetting節點下的ConcurrentCounts(同時轉換文檔數量,即Docker執行個體數量)設定為1。1表示不啟用Docker進行并發轉換。

(7)     初始化資料庫表結構。

(8)     建立服務。

(9)     啟動服務。

(10)  登入系統,進行系統授權。

Linux部署系統

.Net Core3.1支援以下Linux作業系統

Docker支援以下Linux作業系統

綜合考慮,系統選用CentOS7 Linux作業系統。

  1. 基于Docker部署流程

(1)     安裝作業系統。

(2)     安裝MySQL8.0資料庫。(參考下文CentOS7部署MySQL)

(3)     安裝.NET Core 3.1 SDK。(參考下文CentOS7部署 .NET Core 3.1)

(4)     安裝Docker。(參考下文CentOS7部署Docker)

(5)     導入docker轉換鏡像。(參考下文導入Docker鏡像)

(6)     解壓縮管理端程式到指定目錄。

(7)     修改程式目錄下appsettings.json檔案,将ConvertSetting節點下的ConcurrentCounts(同時轉換文檔數量,即Docker執行個體數量)設定為合适的值。建議該值設定為CPU核心數,最小1,最大32。

(8)     初始化資料庫表結構。

(9)     啟動程式。

(10)  登入系統,進行系統授權。

  1. 免Docker部署流程

(1)     安裝作業系統。

(2)     安裝MySQL8.0資料庫。(參考下文CentOS7部署MySQL)

(3)     安裝.NET Core 3.1 SDK。(參考下文CentOS7部署 .NET Core 3.1)

(4)     安裝LibreOffice。(參考下文CentOS7部署LibreOffice)

(5)     導入docker轉換鏡像。(參考下文導入Docker鏡像)

(6)     解壓縮管理端程式到指定目錄。

(7)     修改程式目錄下appsettings.json檔案,将ConvertSetting節點下的ConcurrentCounts(同時轉換文檔數量,即Docker執行個體數量)設定為1。1表示不啟用Docker進行并發轉換。

(8)     初始化資料庫表結構。

(9)     啟動程式。

(10)  登入系統,進行系統授權。

依賴項部署

上傳檔案到CentOS7

使用XFTP6通過ssh連接配接作業系統後即可上傳檔案。

CentOS7部署Docker

  1. 解除安裝舊版本

yum remove docker \

           docker-client \

           docker-client-latest \

           docker-common \

           docker-latest \

           docker-latest-logrotate \

           docker-logrotate \

               docker-engine

  1. 安裝本地rpm包

rpm -ivh *.rpm --nodeps –force

  1. 啟動Docker服務

systemctl start docker

  1. 測試Docker是否正确安裝

docker image ls

  1. 導入文檔轉換鏡像 centos7_soffice.tar

docker load --input centos7_soffice.tar

導入Docker鏡像

Windows系統打開指令行或Windows Power Shell,Linux系統打開Bash,然後執行:

docker load --input <鏡像檔案路徑>

如:docker load --input /root/centos7_soffice.tar

CentOS7部署MySQL

  1. 解除安裝MariaDB

通過 rpm -qa | grep mariadb 指令檢視 mariadb 的安裝包

通過 rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps 指令裝卸 mariadb

  1. 解壓tar包
  2. 依次安裝

rpm -ivh mysql-community-common-8.0.18-1.el7.x86_64.rpm --nodeps --force

rpm -ivh mysql-community-libs-8.0.18-1.el7.x86_64.rpm --nodeps --force

rpm -ivh mysql-community-client-8.0.18-1.el7.x86_64.rpm --nodeps --force

rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm --nodeps --force

  1. 初始化資料庫,依次執行

mysqld --initialize

chown mysql:mysql /var/lib/mysql -R

systemctl start mysqld.service

systemctl enable mysqld

  1. 檢視資料庫root密碼 cat /var/log/mysqld.log | grep password
  2. 登入資料庫mysql -uroot -p

此時已進入mysql控制台,再輸入的就是SQL語句(以分号結尾,否則不執行),不是Linux指令了

  1. 修改mysql 的root使用者密碼(必須修改預設密碼)

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123.root@zst';

  1. 開放防火牆

查詢端口是否開啟:firewall-cmd --query-port=3306/tcp

開啟端口:firewall-cmd --zone=public --add-port=3306/tcp --permanent

重新開機防火牆:firewall-cmd --reload

檢視所有開啟的端口:firewall-cmd --list-port

CentOS7部署LibreOffice

官方安裝教程:https://zh-cn.libreoffice.org/get-help/install-howto/linux/

  1. 解壓縮tar包

tar -xvf LibreOffice_6.3.3_Linux_x86-64_rpm.tar.gz

tar -xvf LibreOffice_6.3.3_Linux_x86-64_rpm_helppack_zh-CN.tar.gz

tar -xvf LibreOffice_6.3.3_Linux_x86-64_rpm_langpack_zh-CN.tar.gz

  1. 安裝LibreOffice

rpm -ivh ./LibreOffice_6.3.3_Linux_x86-64_rpm/RPMS/*.rpm --nodeps --force

/* 安裝主安裝程式的所有rpm包 */

rpm -ivh ./LibreOffice_6.3.3_Linux_x86-64_rpm_langpack_zh-CN/RPMS/*.rpm --nodeps --force

/* 安裝中文語言包中的所有rpm包 */

rpm -ivh ./LibreOffice_6.3.3_Linux_x86-64_rpm_helppack_zh-CN/RPMS/*.rpm --nodeps --force

/* 安裝中文離線幫助檔案中的所有rpm包 */

CentOS7部署.NET Core SDK

  1. 解除安裝

dotnet --list-sdks

yum remove dotnet-host

sudo rm -rf /usr/share/dotnet/sdk/1.0.1

sudo rm -rf /usr/share/dotnet/shared/Microsoft.NETCore.App/1.0.1

sudo rm -rf /usr/share/dotnet/shared/Microsoft.AspNetCore.App/1.0.1

sudo rm -rf /usr/share/dotnet/host/fxr/1.0.1

1.0.1為示例,根據list-sdks實際結果替換

參考教程:https://docs.microsoft.com/en-us/dotnet/core/versions/remove-runtime-sdk-versions?tabs=linux

  1. 安裝dotnet-sdk

mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-3.1.100-rhel.6-x64.tar.gz -C $HOME/dotnet

export DOTNET_ROOT=$HOME/dotnet

export PATH=$PATH:$HOME/dotnet

vim ~/.bashrc

#在檔案末尾增加

export PATH=$PATH:$HOME/dotnet

export DOTNET_ROOT=$HOME/dotnet

其他

  1. 解壓縮WebCore程式:unzip WebCore*.zip
  2. 啟動主程式:dotnet NPSWebCore.dll

2019-12-13

張林