一 背景
二 目标
三 服务器
四 中间件适配
五 应用
六 部署
七 风险
八总结
九 最后rpm 制作
19年国家开始筹备和实施安可工程。我司有幸参与其中。
适配安装OS(操作系统)和CPU
目标拆解如下:
开源中间件适配操作系统和CPU
开源中间件包括,javajdk1.8,elastticsearch6.4.1,fastdfs5.0.8等在OS安装。
国产中间件适配操作系统和CPU
人大金仓数据库(Kingbase8-8.2.0)和东方通(TongWeb6.1.6.0)服务容器。
应用部署运行在中间件上
麒麟操作系统 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包安装前必须先进行繁杂的自签名,签名完成后,方可点击安装或者卸载按钮。
服务登陆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服务 |
|
目前有2T的磁盘挂在/data挂载点上。
防火墙规则配置很不稳定,目前措施是暂时关闭防火墙并且已经联系OS和防火墙相关人员。
暂时未配置。
A 中科软提供的test机器
麒麟操作系统 6.0
内核版本:linux2.6.32(mips64el)
Cpu:model ICT Loongson-
B Windows2019
这里不赘述
C Centos7.x
这里不赘述
主要是涉密环境适配SM系统限制导致适配难度陡升。
龙芯对应jdk8.rpm包,涉密服务器已经安装,非涉密test环境需要安装(已经安装过)。
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
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
SDCETLDesigner-1.0-1.ns6.0.mips64el.rpm
libswt-1.0-1.ns6.0.mips64el,5个包.rpm
如果需要适配人大金仓数据库需要做如下操作:
1 打开20190722 文件夹,中readme.txt 按照其操作步骤操作方可。
我司针对东方通提供的安全插件适配
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,如果有序列号成功,如果无,联系项目经理或相关研发人员。
人大金仓使用(仅仅使用而已)
7大应用
xx,xx2,等
xxl,xxl2
1 初始化sql
首先初始化sql到人大金仓数据库。
2 部署应用
把7大应用部署到东方通上。
1 机器性能底下,系统层面软件稳定性底下。
2 东方通每个机器只有一个实例。
3 防火墙端口和规则配置有问题,只能暂时关闭。
适配必须有test环境作为必要条件。
应用服务中间件同服务器之间的关系图
RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,是一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。使用rpm安装软件和管理软件非常的方便。而这节我们不是介绍如何使用rpm安装或管理软件,而是如何把源码制作成rpm包。
中标麒麟(OS)+龙芯(MIPS)
制作nginx的rpm例子
/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
下载源码包到SOURCES目录,不需要解压。
cd /usr/src/linux/SOURCES
wget http://nginx.org/download/nginx-1.11.1.tar.gz
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
%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
在制作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。
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