中標麒麟OS+龍芯MIPS適配開源中間件

大綱 

一 背景 

二 目標

三 服務器

四 中間件適配

五 應用

六 部署 

七 風險

八總結

九 最後rpm 製作

 

一 背景

   19年國家開始籌備和實施安可工程。我司有幸參與其中。

 

二 目標

適配安裝OS(操作系統)和CPU

目標拆解如下:

開源中間件適配操作系統和CPU

開源中間件包括,javajdk1.8,elastticsearch6.4.1,fastdfs5.0.8等在OS安裝。

國產中間件適配操作系統和CPU

人大金倉數據庫(Kingbase8-8.2.0)和東方通(TongWeb6.1.6.0)服務容器。

應用部署運行在中間件上

三 服務器

1涉密SM環境服務器

A OS和CPU

麒麟操作系統 7.0

內核版本:linux3.10.0(mips64)

Cpu:model ICT Loongson-3.V0.13 FPU v0.1

 

SM系統限制如下:

1該服務器只允許rpm包安裝所有中間件,可執行文件,資源庫。

2安裝後可執行文件不允許修改和移動等。

3系統關鍵目錄不允許修改和添加文件,系統參數不允許修改。

4系統不允許隨便創建子賬戶,創建賬戶需要安全客戶機授權使用時間每天8小時。

5 rpm包安裝前必須先進行繁雜的自簽名,簽名完成後,方可點擊安裝或者卸載按鈕。

B 服務器IP和登陸信息

服務登陸root/(15個1)+a! ,secadm/(15個a)+1!,sugon/(8個1)+a! sugon(該賬號配置使用時間每天10:00-18:00)

I Tongweb和Kingbase部署信息

IP

國產中間件

位置

描述

 

 

Tongweb

/opt/TongWeb

單節點

 

 

 

Tongweb

/opt/TongWeb

單節點

 

 

Tongweb

/opt/TongWeb

單節點

 

 

Kingbase

 

集羣IP

 

Kingbase db用戶名和密碼SYSTEM/12345678ab

II Elasticsearch

IP

開源中間件

位置

描述

備註

 

 

 

 

 

 

Elasticsearch

/home/sugon/elasticsearch

Sugon 賬號啓動

Es 可以先選其一

 

Elasticsearch,fastdfs

/usr/local/elasticsearch

Root 賬號啓動

Es 可以先選其一

 

III應用部署規劃

IP

應用

位置

描述

備註

 

Wydaas,datasource,wydataquality,wydataquality_executor

/opt/TongWeb/autodeploy

 

端口依次序:9001,9002,9003,9004

 

Wydataeye,executor,wytaskwatcher,bms,cas

 

 

端口依次序:9001,9002,9003,9004,9005

 

 

 

計劃部署ETL服務

 

C 磁盤

目前有2T的磁盤掛在/data掛載點上。

D 防火牆

防火牆規則配置很不穩定,目前措施是暫時關閉防火牆並且已經聯繫OS和防火牆相關人員。

E 服務開機自啓

暫時未配置。

2 非涉密FM環境服務器

A 中科軟提供的test機器

麒麟操作系統 6.0

內核版本:linux2.6.32(mips64el)

Cpu:model ICT Loongson-

 

B Windows2019

這裏不贅述

C Centos7.x

這裏不贅述

 

四中間件適配

主要是涉密環境適配SM系統限制導致適配難度陡升。

 

1 龍芯jdk8

龍芯對應jdk8.rpm包,涉密服務器已經安裝,非涉密test環境需要安裝(已經安裝過)。

2 ES6

Elasticsearch6.4.1對應的rpm包

需要準備安裝對應的包

root賬戶和sugon賬戶對應安裝包安裝位置不同

root 賬戶安裝包對應安裝位置/usr/local/elasticsearch

sugon 賬戶安裝包對應安裝位置/home/sugon/elasticsearch

elasticsearch-6.4.1-1.ns6.0.mips64el.rpm

jna-1.0-1.ns6.0.mips64el.rpm

elasticsearch-6.4.1-SNAPSHOT.jar(改包不需要安裝只需要替換安裝根目錄下lib中的對應包即可)

 

安裝注意事項

1 對應兩個rpm安裝完成後,需要使用對應elasticsearch-6.4.1-SNAPSHOT.jar 包替換安裝目錄下lib裏邊的elasticsearch-6.4.1.jar包。然後 啓動elasticsearch 即可。

 

Root 賬戶下的啓動命令

cd /usr/local/elasticsearch -d

3 fastdfs5.11

Fastdfs 5.11對應rpm包

fastdfs-tool-5.11-1.ns7_4.mips64el.rpm

fastdfs-server-5.11-1.ns7_4.mips64el.rpm

fastdfs-5.11-1.ns7_4.mips64el.rpm

libfastcommon-devel-1.0.36-1.ns7_4.3.mips64el.rpm

libfastcommon-1.0.36-1.ns7_4.3.mips64el.rpm

1安裝後需要把配置文件放到有權限修改的地方

2 需要手動修改配置文件中的thread_stack_size=128k

啓動命令

/usr/bin/fdfs_tracker start /root/fastdfs/conf/tracker.conf

/usr/bin/fdfs_storage start /root/fastdfs/conf/storage.conf

 

4 etl客戶端

SDCETLDesigner-1.0-1.ns6.0.mips64el.rpm

libswt-1.0-1.ns6.0.mips64el,5個包.rpm

如果需要適配人大金倉數據庫需要做如下操作:

1 打開20190722 文件夾,中readme.txt 按照其操作步驟操作方可。

5 tongweb

我司針對東方通提供的安全插件適配

sefonsoft-secure-4.0-1.ns6.0.mips64el.rpm

sefon-secure.zip

1在可以創建目錄的地方解壓開,把申請的license.xml 放到/etc下邊。

2如果tongweb home 下bin目錄中external.vmoptions 文件的-server 上面添加一行

-javaagent:sefon-secure.zip解壓後的目錄/secure-agent-4.0.jar,然後啓動tongweb

3 如果啓動tongweb 後控制檯沒有以securesoft-secure 開頭的日誌,然後切換到secure-sefon-secure解壓後的目錄中bin目錄下,執行以下命令

java -cp “../secure-agent-4.0.jar:secure-serialnum-4.0.jar” com.sefonsoft.secure.serialnum.Main,如果有序列號成功,如果無,聯繫項目經理或相關研發人員。

 

 

6 k8

人大金倉使用(僅僅使用而已)

 

五應用

1XX服務

7大應用

xx,xx2,等

2依賴2大服務

xxl,xxl2

3 ETL 服務

 

六部署

1 初始化sql

首先初始化sql到人大金倉數據庫。

2 部署應用

把7大應用部署到東方通上。

七風險

1 機器性能底下,系統層面軟件穩定性底下。

2 東方通每個機器只有一個實例。

3 防火牆端口和規則配置有問題,只能暫時關閉。

八總結

適配必須有test環境作爲必要條件。

應用服務中間件同服務器之間的關係圖

最後rpm 包製作

RPMRedHat Package ManagerRedHat軟件包管理工具)的縮寫,是一種用於互聯網下載包的打包及安裝工具,它包含在某些Linux分發版中。它生成具有.RPM擴展名的文件。使用rpm安裝軟件和管理軟件非常的方便。而這節我們不是介紹如何使用rpm安裝或管理軟件,而是如何把源碼製作成rpm包。

 

中標麒麟(OS)+龍芯(MIPS)

製作nginxrpm例子

A建立目錄結構

/usr/src/linux/SOURCES — 存放源代碼,補丁,圖標等文件。

/usr/src/linux/SPECS — 存放用於管理rpm製作進程的spec文件。

/usr/src/linux/BUILD — 解壓後的文件存放在這裏。

/usr/src/linux/RPMS — 存放由rpmbuild製作好的二進制包。

/usr/src/linux/SRPMS —存放由rpmbuild製作好的源碼包。

mkdir -p /usr/src/linux

cd /usr/src/linux

mkdir SOURCES SPECS BUILD RPMS SRPMS

B 下載源碼包

下載源碼包到SOURCES目錄,不需要解壓。

 

cd /usr/src/linux/SOURCES

wget http://nginx.org/download/nginx-1.11.1.tar.gz

C 創建Spec文件

cd /usr/src/linux/SPECS

vi nginx.spec

內容如下:

#

# Example spec file for nginx

#

Summary: high performance web server

Name: nginx

Version: 1.11.1

Release: 1.el7.ngx

License: 2-clause BSD-like license

Group: Applications/Server

Source: http://nginx.org/download/nginx-1.11.1.tar.gz

URL: http://nginx.org/

Distribution: Linux

Packager: geekwolf <[email protected]>;

%description

nginx [engine x] is a HTTP and reverse proxy server, as well as

a mail proxy server

%prep

rm -rf $RPM_BUILD_DIR/nginx-1.11.1

zcat $RPM_SOURCE_DIR/nginx-1.11.1.tar.gz | tar -xvf -

%build

cd nginx-1.11.1

./configure --prefix=/usr/local/nginx

make

%install

cd nginx-1.11.1

make install

%preun

if [ -z "`ps aux | grep nginx | grep -v grep`" ];then

killall nginx >/dev/null

exit 0

fi

%files

/usr/local/nginx

 

D 製作rpm包

在製作RPM包之前需要安裝必要的工具,如rpmbuild,gcc等。開始RPM製作

備註 :生產環境可以不用安裝編譯打包的依賴工具

 

yum install gcc rpm-build pcre-devel

cd /usr/src/linux/SPECS/

rpmbuild -bb nginx.spec

一切順利的話,會生成nginx的rpm包,/usr/src/linux/RPMS/i386/nginx-1.11.1-1.el7.ngx.x86_64.rpm。

 

E 測試rpm包

rpm -ivh /usr/src/linux/RPMS/i386/nginx-1.11.1-1.el7.ngx.x86_64.rpm

spec文件解釋

從以上的簡單例子可以看出,製作rpm包最重要的還是spec文件,下面解釋一下例子所用到的指令。

#:以#開頭是註釋,rpm會忽略它。

Summary:簡單描述軟件。

Name :定義rpm的名稱。

Version: 定義軟件版本

Release: 發行版本

License: 定義許可證

Group: 軟件分類

Source: 源碼下載地址

URL: 源碼相關網站

Distribution: 發行版系列

Packager: 打包人的信息

%description:軟件詳細描述,可多行

%prep :軟件編譯之前的處理,如解壓。

%build :開始編譯軟件,如make

%install :開始安裝軟件,如make install

%files :指定哪些文件需要被打包,如/usr/local/nginx

%preun :定義卸載之前的動作,如殺掉進程。

這裏只介紹了幾個常用的tag

 

 

參考文獻

http://www.rpm.org/max-rpm/ch-rpm-inside.html

https://www.cnblogs.com/noxy/articles/10894350.html

 

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