Linux操作系统安装部署
# Linux操作系统安装部署
# 1 系统描述
目前国内比较知名的操作系统有银河麒麟,中标麒麟,深度,红旗,统信,鸿蒙,阿里云等,每种操作系统都有他们专属的领域优越性,大多都是基于linux内核实现的操作系统,所以基本操作上跟linux很多命令相似,在它们当中我们就以安全性较高著称的银河麒麟操作系统为例阐述一下整个安装过程。
# 2 安装操作系统
# 2.1 下载安装包
进入麒麟系统官网 https://www.kylinos.cn/ 下载安装包,项目上会通过采购流程从官方获取正式安装包,但是为了个人学习可以通过官网给的试用下载页面进行下载,我们以【银河麒麟高级服务器操作系统V10】为例。
切记:不同的服务器硬件下载对应的版本
下载之后会得到对应的ISO安装包,如果你是在物理机环境下可通过U盘进行安装,我们这里是在虚拟机下安装,所以直接就用ISO文件进行安装。
# 2.2 开始安装
安装过程非常简单,网上有很多教程,这里就不再做详细说明了,可以参考 https://baijiahao.baidu.com/s?id=1809775284972545787&wfr=spider&for=pc
正版的会提供光盘。
# 2.3 安装完成
# 3 准备基础环境
安装基础环境时必须保证是公网环境,否则无法进行后续的安装步骤。
# 3.1 固定IP地址
设定一个固定的IP地址方便后面进行ssh连接和系统稳定性,如何设置固定IP跟传的linux系统大致相同,这里把命令贴在下方,安装时可以参考进行配置。
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static #static表示静态获取 dhcp 表示动态获取
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=9ebc4351-35ae-40f7-a3f7-c4f7f99a0ae7
DEVICE=enp1s0
ONBOOT=yes
IPV6_PRIVACY=no
IPADDR=xxxxx #你需要设置的ip地址
PREFIX=24
GATEWAY=192.168.2.1 #你的网关地址
DNS1=114.114.114.114 #备选DNS
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 3.2 SSH连接
系统安装完成之后,默认是自带ssh的,但是考虑安全因素局域网其它电脑无法连接到它,所以需要重新进行安装。
卸载ssh
yum remove openssh-server
重新安装
yum install openssh-server
如果你通过局域网ssh客户端能正常连接的话,就不需要进行重新安装了。
# 3.3 应用环境安装
# 3.3.1 下载安装包
在 公司云盘 (opens new window) 上通过管理员发放的账号登录,然后在目录 公司平台升级包>独立安装 下载linux环境安装包压缩包.zip文件到你电脑本地,如果没有账号向管理员获取。
# 3.3.2 运行环境要求
基本要求 | 类型 | 描述 |
---|---|---|
基于linux内核各版本操作系统 | 操作系统 | 推荐ubuntu操作系统20.04 LTS |
DELL 730 | 服务器 | 满件硬件要求都可以 |
CPU | 硬件 | 8核32线程 |
内存 | 硬件 | 64GB |
硬盘 | 硬件 | 2TB以上 |
网络带宽 | 硬件 | 千兆及万兆 |
# 3.3.3 上传文件到服务器
下载的安装压缩包解压后传到服务器指定目录,比如:update_package 文件夹,上传完成之后如下图;
# 3.3.4 安装包目录介绍
名称 | 作用 |
---|---|
static | 配置文件appsettings.Production.json,安装前需要根据服务器环境修改 |
install.sh | 新服务器首次安装应用时执行 |
up.sh | (更新/启动)我们平台应用时执行 |
down.sh | 卸载我们平台应用时执行 |
tt-web1.0.tar | 开发打包的->平台web程序 备注:每次更新前需要替换 |
tt-api1.0.tar | 开发打包的->平台api服务接口程序 备注:每次更新前需要替换 |
static>pages>Views&wwwroot | 初始静态资源文件(更新时需把pkg下面对应的(Views&wwwroot)替换到安装的目录/mes/tengtaimes 下面) |
# 3.3.5 开始安装
安装前需要修改一下配置文件,在安装包目录static/appsettings.Production.json,只需要修改配置文件中标明 需要修改 标记的地方即可,配置文件内容如下;
{
"MongoConnection": {
"ConnectionString": "mongodb://admin:xxx@127.0.0.1:29005", #需要修改,分为有账号无账号,根据mogondb环境配置而定
"DataBase": "tentai",
"IsSSL": false
},
"RabbitMq": {
"HostName": "127.0.0.1", #需要修改
"UserName": "admin", #需要修改
"Password": "xxx" #需要修改
},
"RedisConnection": {
"Host": "127.0.0.1:29001" #需要修改
},
"SuposKey": {
"supOSAK": "",
"supOSSK": ""
},
"SocketServer": {
"SocketSwitch": "off",
"SocketIP": "127.0.0.1",
"SocketPort": 8086
},
"DDos": {
"DDosSwitch": "off",
"DDosIntercept": 20
},
"SyncWebJson": {
"permissionstatus": "off",
"permisslevel": "menu",
"url.apiUrl": "http://127.0.0.1:8084", #需要修改
"url.ftpUrl": "http://locahost:9000/",
"url.printCon": "SELECT rp.Name AS Name,IP + '@' + Name AS [Value] FROM\tSmart_Roles_Print rp,Smart_Role_User_Link rl WHERE rp.RoleID = rl.RoleID AND rl.UserID = '$userid$' and name is not null and IP is not null and (ip <>'' or name <>'')",
"webconfig.mqtt.hostname": "",
"webconfig.mqtt.port": 1884,
"webconfig.session": 15,
"webconfig.mqtt.username": "",
"webconfig.mqtt.password": "",
"webconfig.WebSocket": "ws://0.0.0.0:6868",
"webconfig.Token": "tk",
"webconfig.disableSqlForeEnd": "0",
"webconfig.suposAppID": "App_ec6dd6e83e0b6f04601609e44d63f719",
"webconfig.suposSecret": "9FCC0042AEE766ACFA0B762AF854BE1C",
"webconfig.suposPath": "",
"webconfig.suposTopic": "pending_topic",
"webconfig.suposTopicBusinessCode": "pending_topic",
"webconfig.suposTopicBusinessName": "待办消息",
"webconfig.isNoLogin": 0,
"webconfig.scheduleName": "TenTaiScheduler",
"webconfig.scheduleThreadCount": 32,
"webconfig.scheduleTablePrefix": "SMART_QRTZ_",
"webconfig.scheduleTimeout": 20,
"webconfig.scheduleReset": false, // 是否启动自动调度重启
"webconfig.scheduleResetTime": "12" // 调度重启间隔/时
},
"ConnectionStrings": {
"Connection": "server=xxx;port=3306;database=gsmesdemo_kpt;user=root;password=xxx", #需要修改
"DbType": "MySql"
//"Connection": "Server=127.0.0.1;Port=5600;UID=admin;PWD=xxx;database=gsmesdemo_kpt",
//"DbType": "Kdbndp"
//"Connection": "Data Source=127.0.0.1;user id=sa;password=xxx;Initial Catalog=gsmesdemo_kpt;Integrated Security=False;Pooling=True;Max Pool Size=100;Connect Timeout = 30",
//"DbType": "SqlServer"
},
"AllowedHosts": "*",
"StdDataService": {
"StdDataPath": "xxxx",
"StdDataCount": 6,
"StdInterval": 300,
"StdDevRateDigits": 4,
"StdBatchCount": 1000,
"StdCalType": 1
},
"AppEnvironment": "gsmesdemo",
"Wx": {
"Enterprise": {
"corpId": "xxx",
"appSecret": "xxx",
"agentId": "xxx",
"contactSecret": "xxxx"
}
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
通过ssh连接工具切换到服务器安装包目录下,比如/update_package目录,执行以下命令;
#新环境首次安装
bash -x install.sh
2
这个安装过程有点久,需要安装很多依赖环境,大概5分钟左右可以完成(根据服务器性能相关),安装过程中如果发现报错需要联系管理员排查原因。
# 3.3.6 端口问题
我们的app默认是占用 8033/8034/8035三个端口,且记一定得是连续的哦,安装前需要验证端口占用情况。
#查看端口占用方式有很多种方法
lsof -i:8033 -i:8034 -i:8035
2
# 3.3.7 启动应用
基本环境准备好了就可以启用我们的平台应用程序了,执行以下命令
#启动应用
bash -x up.sh
#查看应用运行状态
docker ps -a | grep tt-
2
3
4
# 3.3.8 浏览
以上都顺利执行成功且没报任何错误,这时就可以通过浏览器输入 http://服务器ip地址:8033 (opens new window) 即可看到我们平台的登录界面了,如果不能浏览可能是网络问题,防火墙等原因引起的。
# 3.4 应用环境更新
# 3.4.1 下载更新包
更新前需要到 公司云盘 (opens new window) 中下载标准包目录下的tt-web1.0.tar|tt-api1.0.tar|pkg.rar 到你电脑本地,然后把tt-web1.0.tar跟tt-api1.0.tar拖到服务器安装包目录下,再然后解压pkg.rar把解压后web目录下面的Views|wwwroot两个文件夹拖到服务器的安装目录 /mes/tengtaimes/ 下面进行覆盖。
# 3.4.2 执行更新
一定要切换到安装包所在的目录下执行以下命令。
#执行更新
bash -x update.sh
#查看应用运行状态
docker ps -a|grep tt-
2
3
4
# 3.5 注意事项
要区分安装包目录跟应用安装目录不要搞混淆。
1: 执行命令切换到安装包目录。
2: 替换静态文件要切换到应用安装目录。
3: 配置文件修改前自己要搞明白,错误的配置引起无法启动应用。
4: 整个过程为全自动安装,包括自动安装docker环境,若服务器已有docker环境,会跳过docker安装,有时会环境不生效影响部署(联系管理员)
# 3.6 安装kingbase数据库
KingbaseES 支持多种操作系统和硬件平台: 支持 Linux、Windows、国产 Kylin 等数十个操作系统产品版本,支 持通用 x86_64 及国产龙芯、飞腾、申威等 CPU 硬件体系架构。
# 3.6.1 下载安装包
安装包全部在开发给的安装中,如果现场使用的是正版授权的安装包,可直接进行安装!
这里我们用开发给的安装包 KingbaseES_V009R001C001B0030_Lin64_install.iso 光盘镜像文件为例,例出安装步骤和相关注意事项。
# 3.6.2 准备工作
查看服务器磁盘空间,一般选择较大的那个挂载目录
#查看磁盘空间
df -h
2
# 3.6.3 创建kingbase用户
在安装 KingbaseES 时,安装用户对于安装路径需有“读”、“写”、“执行”的权限。在 Linux 系统中,需要 以非 root 用户执行安装程序,且该用户要有标准的 home 目录。
因此,建议在正式安装前,新建 kingbase 用户作为 KingbaseES 专用的系统用户,您可以先使用 root 用户运行 如下命令创建 kingbase 用户
#创建kingbase用户
useradd -m kingbase
2
该命令会同时创建同名用户组 kingbase 以及用户根目录/home/kingbase。继续运行如下命令设置 kingbase 用户 的密码:
#设置kingbase用户密码
passwd kingbase
2
# 3.6.3 安装目录
KingbaseES 默认的安装目录是/opt/Kingbase/ES/V9。如果不存在,您需要使用 root 用户先创建该目录,并赋 予 kingbase 用户对该目录的读写权限;
#创建目录并赋与权限
mkdir /opt/Kingbase/ES/V9
chmod o+rwx /opt/Kingbase/ES/V9
2
3
# 3.6.4 挂载安装包
挂载 iso 文件需要使用 root 用户。比如挂载的目录是 /KingbaseES,没有这个目录则需要手动创建,您可以运行如下命令进行挂载
#挂载ISO光盘镜像文件
mount KingbaseES_V009R001C001B0030_Lin64_install.iso ./KingbaseES
#进入挂载目录(查看是否挂载成功)
cd /KingbaseES
2
3
4
# 3.6.5 授权文件
我们安装是试用版本有时间限制几个月时间吧,测试用的话,可以使用开发给的安装包中的授权文件,如 license_41248_0.dat ,把它放到服务器上任意一个目录下面,比如我放在 /opt/kingbase/license_41248_0.dat
# 3.6.6 开始安装
切换kingbase用户,进入ISO光盘挂载目录 /KingbaseES,执行以下命令
#开始安装
sh setup.sh -i console
2
具体安装过程选项就省略了,以下例举几个关键点
选择授权文件:
这里的路径需要填入你授权文件所放置的目录,如 /opt/kingbase/license_41248_0.dat
安装目录:
安装目录填写 /opt/Kingbase/ES/V9
大小写:
一定要选择不区分大小写
其它的一切Enter默认选择即可...
如果安装过程中没有意外,应该会提示你是否需要装KingbaseES V9注册为系统服务,如果需要的话可以根据提示进入其目录,进行启动
比如: 运行 ${安装目录}/install/script/root.sh
# 3.6.7 测试连接
打开navicat,连接类型选择postgresql建立连接,连接之前关闭服务器防火墙
账号: | system |
---|---|
密码: | xxxxx |
端口: | 54321 |
初始数据库: | test |
关闭服务器防火墙:
#关闭防火墙
systemctl stop firewalld
2