大綱
一 背景
二 目標
三 服務器
四 中間件適配
五 應用
六 部署
七 風險
八總結
九 最後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 包製作
RPM是RedHat Package Manager(RedHat軟件包管理工具)的縮寫,是一種用於互聯網下載包的打包及安裝工具,它包含在某些Linux分發版中。它生成具有.RPM擴展名的文件。使用rpm安裝軟件和管理軟件非常的方便。而這節我們不是介紹如何使用rpm安裝或管理軟件,而是如何把源碼製作成rpm包。
中標麒麟(OS)+龍芯(MIPS)
製作nginx的rpm例子
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