xxxxx子系统部署手册
1.运行环境和规格
系统环境如下:
Linux版本 |
CentOS 7 |
JDK版本 |
jdk-8u141以上 |
PostgreSQL版本 |
10.x |
应用构建部署环境如下:
git |
1.8.3.1 |
node |
node-v8.11.4-linux-x64 |
nginx |
1.6.2 |
2.基础环境安装与配置
基础环境的安装与配置请请参考运维编写基础环境部署文档
2.1.安装 JDK
2.2.安装 PostgreSQL
2.3.安装 git
2.4.安装 node
2.5.安装 nginx
3.数据库部署配置
3.1.主机信息
部署数据库服务器的主机信息如下:
- 服务器IP:59.214.215.xx
- 主机账号1:root 密码:xxxxx
- 主机账号2:root 密码:Hlw..xxx
3.2.pg数据库安装
这部分内容参考上面的基础环境部署章节
3.3.数据库配置
这部分内容主要有创建数据库、执行相应的数据库脚本、或者迁移数据库的一些操作步骤,具体可根据项目情况来进行数据库配置,就目前的状态,我们的目标就是将正式环境10.10.1.xxx上的pg数据库迁移到测试环境59.214.215.xxx上来。下面即具体的操作步骤:
- 进入正式环境10.10.1.xxxx服务器
- 使用ps命令查找pg数据库安装目录
- 通过查看,安装目录为/opt/haishu/local/postgresql/bin 进入安装目录
- 使用pg数据库的导出命令
ps -ef | grep pg
cd /opt/haishu/local/postgresql/bin
./pg_dump -h 10.10.1.xx -U postgres msgmanage >/opt/haishu/backup/msgmanage.sql
其中:
- -h表示的是我们要导出的数据库所在的服务器地址,也就是10.10.1.1xx
- -U表示的是正式环境数据库使用的用户名
- ig_file_xycq表示该使用的数据库的名称
- /opt/haishu/backup/ig_file_xycq.sql 表示我们将导出的数据存放的路径
在使用这个命令时会遇到了一个问题,显示的是: error while loading shared libraries: libpq.so.5: cannot open shared object file: No such file or directory 从网上找到了解决方案 #使用find命令找到libpq.so.5所在的目录 find / -name libpq.so.5 #创建/usr/lib/libpq.so.5的软连接 ln -s /opt/haishu/local/postgresql/lib/libpq.so.5 /usr/lib/libpq.so.5 #创建/usr/lib64/libpq.so.5的软连接 ln -s /opt/haishu/local/postgresql/lib/libpq.so.5 /usr/lib64/libpq.so.5 然后再用次命令即可 cd /opt/haishu/local/postgresql/bin ./pg_dump -h 10.10.1.xxx -U postgres msgmanage >/opt/haishu/backup/ 进入我们导出数据存放的目录 使用scp命令将导出的sql文件传送到59.214.215.xx中,具体放在/opt/haishu/backup/msgmanage/下 cd /opt/haishu/backup/ ll scp -r ./msgmanage.sql ztyw@59.214.215.xxx:/opt/haishu/backup/msgmanage/ 进入59.214.215.xx服务器,并使用ps命令来查找pg安装的目录 进入pg安装的目录 ps -ef | grep pg cd /opt/haishu/local/pgsql/10.1/bin ll ##使用pg数据库导入命令 ./psql -U postgres msgmanage_new < /opt/haishu/backup/msgmanage.sql 其中: -U表示的是测试环境数据库使用的用户名 msgmanage_new表示该使我们在测试环境创建的数据库的名称,导入之前先创建此数据库 /opt/haishu/backup/msgmanage.sql 表示我们将使用哪个文件的数据进行导入操作
4. 应用构建部署
git拉取代码并进行代码的编译打包操作步骤用jenkins实现。
4.1. 主机信息
部署应用服务器的主机信息如下:
- 服务器IP:59.214.215.xxxxx
- 主机账号1:root 密码:xxx
- 主机账号2:ztyw 密码:Hlw..2018
4.2. 部署操作约定
- 部署的主目录在:/opt/haishu/app
- xxx的后端在:/opt/haishu/app/backend-v2
- xxx的前端在:/opt/haishu/app/frontend-v2
- 各个不同的子系统以子系统的名称在前端和后端下命名
- 如果是前后端一起的,则直接在/opt/haishu/app下建子系统目录
4.3.部署操作步骤
4.3.1.前端操作步骤
4.3.1.1.获取前端dist文件
首先从开发处获取前端的dist文件
4.3.1.2.创建目录
首先在/opt/haishu/app/frontend-v2目录建子系统的前端文件目录:message-management
cd /opt/haishu/app/frontend-v2
mkdir message-management
ll
4.3.1.3.解压文件
获取到了前端的压缩包,则使用如下命令解压
解压完文件后,将解压后的dist文件放入到message-management目录下即可。
tar -zxvf xxx.tar.gz
cd message-management
ll
4.3.1.4.nginx配置
进入nginx目录(我们可以使用如下方式查找进程目录:ps -ef | grep nginx并找到nginx的进程pid,然后使用ls -l /proc/pid 来找相应进程所在的目录)
ps -ef | grep nginx
ls -l /proc/PID
cd /opt/app/local/tengine/conf/
ll
而nginx一般的配置是放在nginx.conf配置文件下的,进入nginx.conf文件,主要配置后端服务名、后端server地址,配置内容参考如下(注意最下面的include conf.d/*.conf表示的是这个nginx.conf的配置内容包含了conf.d目录下的所有以.conf结尾的配置文件)。我们进入conf.d目下,查看到对应的配置文件如下:
vim nginx.conf
cd conf.d/
ll
我们xx系统二期的配置文件统一放在credit-system-v2.conf文件中,进入credit-system-v2.conf文件进行配置,如下所示:
vim credit_system-v2.conf
- 当然我们也可以直接在这个配置文件下配置第4个操作步骤中的服务名、后端地址;
upstream message-backend-v2{
server 59.214.215.xxx:18082;
}
- listen为我们设置前端需要访问的端口号,需要确保我们的端口号没有被使用,可使用命令:lsof -i:port 查看port端口号占用情况;
- root后面配置我们前端的dist文件所在目录;
- 后面的location相关的内容中涉及的服务名,均要改为我们上面设置的upstream,即message-management-v2
4.3.1.5.启动nginx
进入/opt/app/loacl/tengine/sbin中运行。
cd /opt/app/local/tengine/sbin/
./nginx -c /opt/app/local/tengine/conf/nginx.cong -p /opt/app/localtengine
4.3.2. 后端操作步骤
4.3.2.1.获取后端部署程序包
首先从开发处或者jenkins获取到xxx系统相关的部署程序包,里面主要包含启动脚本:start.sh、停止脚本:stop.sh、版本说明配置文件:version.properties、应用配置文件:application.properties以及Java程序包:xxx.jar等。
4.3.2.2.创建目录
进入/opt/haishu/app/backend-v2目录,并在该目录下建一个xxxx系统的后端文件目录message-management。
cd /opt/haishu/app/backend-v2
mkdir message-management
4.3.2.3.获取文件
将获取到的应用相关的部署包及相关配置文件都放进message-management文件夹中,包含的内容如下图所示:
cd message-management
ll
4.3.2.4.查看并修改版本配置文件
查看version.properties中对应的版本与java包的版本是否一致,如果不一致,则将文中的VERSION更改与java包的版本一致,如下图所示,文件中的VERSION与包的版本一致,这里不做修改。
vim version.properties
4.3.2.5.查看并修改应用配置文件
查看并修改application.properties文件,主要是修改相应的数据库配置的url,classname,username,password几个部分,具体如下:
vim application.properties
4.3.2.6.启动后端
然后运行start.sh脚本启动后端
./start.sh
4.3.2.7.查看进程启动情况
使用ps命令查看进程启动情况,如果启动正常,那么实际操作到此就结束了,但如下我们可以看出实际上我们的邮件系统并未启动起来,所以我们需要查看日志并处理启动报错的问题。
ps -ef | grep message
4.3.2.8.查看日志
查看日志文件,报错信息为:/tmp/spring.log文件权限不够,则可能需要使用root账号执行,或者更改该文件的用户权限。
cd log #进入日志目录 ll #查看目录有哪些日志文件 tailf mm-web-metric.2019-06-04.0.log #查看最新的日志文件
4.3.2.9.处理日志报错
从上图的日志文件报错信息我们可以看出,报错原因是因为/tmp/spring.log权限不够,所以我们需要修改/tmp/spring.log文件的权限。
cd /tmp
ll
从上图我们确实可以看出,spring.log文件所属用户为root的,而我们正使用的是ztyw用户,所以这里我们可以将spring.log文件的权限更改为ztyw,更改如下所示:
sudo chown ztyw ./spring.log
chgrp ztyw ./spring.log
ll
4.3.2.10.重新启动后端
修改好后,再进入后端目录,重新运行./start.sh文件启动,并查看进程
cd /opt/haishu/app/backend-v2/message-management
./start.sh
ps -ef | grep message
4.3.2.11. 访问地址
浏览器中输入59.214.215.xx:8012即可访问xx系统