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上来。下面即具体的操作步骤:

  1. 进入正式环境10.10.1.xxxx服务器
  2. 使用ps命令查找pg数据库安装目录
  3. 通过查看,安装目录为/opt/haishu/local/postgresql/bin 进入安装目录
  4. 使用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. 部署操作约定

  1. 部署的主目录在:/opt/haishu/app
  2. xxx的后端在:/opt/haishu/app/backend-v2
  3. xxx的前端在:/opt/haishu/app/frontend-v2
  4. 各个不同的子系统以子系统的名称在前端和后端下命名
  5. 如果是前后端一起的,则直接在/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系统

原文地址:https://www.cnblogs.com/wendyw/p/14837117.html