大纲 

一 背景 

二 目标

三 服务器

四 中间件适配

五 应用

六 部署 

七 风险

八总结

九 最后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 <admin@simlinuxc.om>;

%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

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐