整套项目部署(IHCC为例)
作者:互联网
目录
IHCC项目部署
本次部署方式采用执行jar文件的形式,运行环境安装配置采用的docker方式进行,后期需根据情况自行安装设定,数据库文件中包含部分测试中的数据信息,后期需清理。
#在所有的设置好的前提下每次开机只需要启动nacos及后台服务
#1 启动nacos
sh /ihcc/files/nacos/bin/startup.sh -m standalone
#2 启动后台所有服务
cd /ihcc/files/sh
sh ihcc.sh start
#另开窗口查看启动日志,在启动命令同级目录,运行日志在启动脚本的下级目录logs中
tail -f nohub.out
环境准备
- 安装JDK
- 安装Postgre数据库
- 安装redis
- 安装MQ
- 安装ElasticSearch
- 安装Nginx
安装JDK
# 安装openjdk1.8(推荐安装1.8和openjdk11)
sudo yum install java-1.8.0-openjdk*
#配置环境变量
打开/etc/profile,添加如下信息,下面 JAVA_HOME,JRE_HOME 为自己JDK的实际路径,自行修改。
#set java environment
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/rt.jar
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
#重新加载 /etc/profile 文件,使配置生效
source /etc/profile
#查看版本(安装成功后可查看到对应版本)
java -version
安装Docker
#需要的安装包
yum install -y yum-utils
#设置镜像的仓库
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo #默认是国外的
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #推荐使用阿里云的
#更新yum软件包索引
yum makecache fast
#安装Docker docker-ce社区 ee企业版
yum install docker-ce docker-ce-cli containerd.io
#启动Docker
systemctl start docker
systemctl enable docker
#使用docker version 查看是否安装成功
#阿里云镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://stltrtm2.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
安装Postgre数据库
#下载镜像,版本指定
docker pull postgres:10.15
#创建本地映射目录
mkdir -p /ihcc/postgresql/data
#启动
docker run --name postgres -e POSTGRES_PASSWORD=Ab@123456 -p 5432:5432 -v /ihcc/postgresql/data:/var/lib/postgresql/data -d postgres:10.15
# 进入容器
docker exec -it postgres /bin/bash
# 进入文件夹
cd /usr/lib/postgresql/9.6/bin
# 进入postgresql,默认的postgres用户
psql -Upostgres
#此时可以用客户端连接工具进行测试是否连接成功
# Docker启动容器自启
docker update postgres --restart=always
安装Redis
#下载镜像
docker pull redis
#创建本地映射目录
mkdir -p /ihcc/redis/conf
mkdir -p /ihcc/redis/data
#从官方下载redis,更新配置文件redis.conf部分配置项
bind 127.0.0.1 #注释掉这部分,使redis可以外部访问
daemonize no#用守护线程的方式启动
requirepass 你的密码#给redis设置密码
appendonly yes#redis持久化 默认是no
tcp-keepalive 300 #防止出现远程主机强迫关闭了一个现有的连接的错误 默认是300
#将文件放到映射目录/ihcc/redis/conf/redis.conf
#创建Redis容器并启动
sudo docker run -p 6379:6379 --name redis -v /ihcc/redis/conf/redis.conf:/etc/redis/redis.conf -v /ihcc/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes
#进入Redis容器
### 通过 Docker 命令进入 Redis 容器内部
docker exec -it redis /bin/bash
docker exec -it redis bash
### 进入 Redis 控制台
redis-cli
### 添加一个变量为 key 为 name , value 为 hing 的内容
> set name hing
### 查看 key 为 name 的 value 值
> get name
### 或者也可以直接通过Docker Redis 命令进入Redis控制台 (上面两个命令的结合)
docker exec -it redis redis-cli
## 进入Redis容器,通过密码进入Redis控制台
docker exec -it redis /bin/bash
redis-cli -h 127.0.0.1 -p 6379 -a Ab123456
# Docker启动容器自启
docker update redis --restart=always
安装RabbitMQ
#下载镜像,指定版本,该版本包含了web控制页面
docker pull rabbitmq:management
#创建本地映射目录
mkdir -p /ihcc/rabbitmq
##启动
#方式一:默认guest 用户,密码也是 guest
docker run -d --hostname my-rabbit --name rabbit -v /ihcc/rabbitmq:/var/lib/rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq:management
#方式二:设置用户名和密码
docker run -d --hostname my-rabbit --name rabbit -v /ihcc/rabbitmq:/var/lib/rabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_VHOST=my-vhost -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 rabbitmq:management
#访问ui页面
http://localhost:15672/
# Docker启动容器自启
docker update rabbit --restart=always
安装ElasticSearch
#下载镜像,版本指定
docker pull elasticsearch:7.12.1
#创建本地映射目录及文件
mkdir -p /ihcc/elasticsearch/config
mkdir -p /ihcc/elasticsearch/data
mkdir -p /ihcc/elasticsearch/plugins
echo "http.host: 0.0.0.0">>/ihcc/elasticsearch/config/elasticsearch.yml
#文件夹赋权
chmod -R 777 /ihcc/elasticsearch/
#启动,注意这里需要增加--privileged=true,也就是让docker有root权限启动容器
docker run --name elasticsearch -p 9200:9200 \
-p 9300:9300 \
--privileged=true \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /ihcc/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /ihcc/elasticsearch/data:/usr/share/elasticsearch/data \
-v /ihcc/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.12.1
#验证是否成功
http://192.168.80.111:9200/
# Docker启动容器自启
docker update elasticsearch --restart=always
安装Nginx
#下载镜像
docker pull nginx
#启动测试容器
sudo docker run --name nginx-test -p 8081:80 -d nginx
#创建本地映射目录
mkdir -p /ihcc/nginx/html /ihcc/nginx/logs /ihcc/nginx/conf
#查看
docker ps
#拷贝容器内 Nginx 默认配置文件到本地当前目录下的 conf 目录
sudo docker cp f77f78d2228d:/etc/nginx/nginx.conf /ihcc/nginx/conf
#启动
sudo docker run -d -p 80:80 --name nginx -v /ihcc/nginx/html:/usr/share/nginx/html -v /ihcc/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /ihcc/nginx/logs:/var/log/nginx --privileged=true nginx
#测试页面
vim /ihcc/nginx/html/index.html
#内容
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试</title>
</head>
<body>
<h1>hello</h1>
<p>这是一个测试页面</p>
</body>
</html>
#测试访问是否部署成功
http://192.168.80.111:8080/
#停止并移除测试容器
docker stop nginx-test
docker rm nginx-test
# Docker启动容器自启
docker update nginx --restart=always
文件准备
准备好的文件放在/ihcc/files文件夹的各个子文件夹中
- 前端文件:~/ihcc
- 后端文件:~/jar
- nacos文件:~/nacos
- 数据文件:~/backupfile/ry-cloud20210823.tar、ry-config20210823.tar
- 启动脚本文件:~/sh/ihcc.sh、ihcc-one.sh
以下操作开发人员需要使用命令:
#前端打包
npm install
npm run build:prod
#后端打包
mvn clean compile
mvn clean package
#数据库文件备份,从其他服务器备份数据库文件
pg_dump -h 172.22.24.139 -U postgres -p 5432 -F t -f /home/apiserver/postgres-data/ry-cloud20210823.tar ry-cloud
pg_dump -h 172.22.24.139 -U postgres -p 5432 -F t -f /home/apiserver/postgres-data/ry-config20210823.tar ry-config
#nacos打包,文件在distribution目录下
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U -Drat.skip=true
文件方式配置及启动
- 配置数据库
- 配置启动nacos
- 配置后端模块:此操作在nacos管理界面操作
- 启动后端模块
- 配置启动nginx
还原数据库
#将准备好的数据库文件进行还原
#首先将数据文件放到待还原服务器的挂载目录下
/ihcc/postgresql/data/backupfile/
#进入容器
docker exec -it postgres /bin/bash
#还原,首先创建空的待还原的数据库,之后进行还原的操作,执行的目录为容器内部的目录
nohup pg_restore -h 192.168.80.111 -U postgres -d ry-cloud /var/lib/postgresql/data/backupfile/ry-cloud20210823.tar
nohup pg_restore -h 192.168.80.111 -U postgres -d ry-config /var/lib/postgresql/data/backupfile/ry-config20210823.tar
#查看还原信息
tail-f nohup.out
配置启动nacos
#文件位置/ihcc/files/nacos/
#更新配置文件application.properties,数据源相关配置为上边安装的数据库地址
db.url.0=jdbc:postgresql://192.168.80.111:5432/ry-config?useSSL=false
db.user=postgres
db.password=Ab@123456
#启动
sh /ihcc/files/nacos/bin/startup.sh -m standalone
#查看启动日志
tail -f /ihcc/files/nacos/logs/start.out
#访问页面,用户名/密码 nacos/nacos
http://192.168.80.111:8848/nacos
#备注:执行.sh脚本时出现$’\r’: 未找到命令,是因为命令直接从windows 复制过来导致的
yum install dos2unix
dos2unix **.sh 进行转换
配置后端所有模块
#此部分的所有模块的配置都在nacos中进行变更
http://192.168.80.111:8848/nacos
#所有模块的数据库、redis、es、文件路径配置、图片地址配置相同
ihcc-auth-dev.yml
ihcc-file-dev.yml
ihcc-gateway-dev.yml
ihcc-imobile-dev.yml
ihcc-logger-dev.yml
ihcc-apm-dev.yml
ihcc-adapter-dev.yml
ihcc-system-dev.yml
ihcc-gen-dev.yml
#数据库
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://192.168.80.111:5432/ry-cloud?useSSL=false
username: postgres
password: Ab@123456
#redis
redis:
host: 192.168.80.111
port: 6379
password: Ab123456
#es
addressIsIP: true
hosts: 192.168.80.111:9200
#文件路径
file:
domain: http://192.168.80.111:9204
path: /ihcc/files/uploadFile
prefix: /statics
#图标地址配置
icons:
url: http://192.168.80.111/
suffix: .svg
rabbitmq配置
MQ的配置各个模块有些差异
#创建特定的host,并将此配置信息通知iMobile用于用户及角色信息的同步
需要创建Virtual Hosts:/iMobile
创建用户:iMobile/Ab@123456
赋予Virtual Hosts为/iMobile的permissions权限为iMobile用户
#ihcc-logger-dev.yml、ihcc-adapter-dev.yml配置一致
rabbitmq:
host: 192.168.80.111
port: 5672
username: admin
password: admin
virtual-host: /
#ihcc-system-dev.yml
rabbitmq:
host: 192.168.80.111
port: 5672
username: iMobile
password: Ab@123456
virtual-host: /iMobile
启动后端模块
#jar包所在位置
/ihcc/files/jar/
#启动文件所在位置
/ihcc/files/sh/
#启动文件需要修改jar包所在位置及nacos地址
export JAR_BASIC_PATH=/ihcc/files/jar
export nacos_addr=192.168.80.111:8848
#启停所有后端服务
sh /ihcc/files/sh/ihcc.sh start
sh /ihcc/files/sh/ihcc.sh stop
#服务的单独启停,以单独system为例
sh /ihcc/files/sh/ihcc-one.sh start system
sh /ihcc/files/sh/ihcc-one.sh stop system
配置启动nginx
#前端文件位置
/ihcc/nginx/html/ihcc
#配置文件位置
/ihcc/nginx/conf/nginx.conf
#修改配置文件,在http{}中增加server{}配置
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
add_header Access-Control-Allow-Origin '*';
root /usr/share/nginx/html/ihcc/;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location ^~ /resources/ {
root /usr/share/nginx/html/resources/;
index index.html index.htm;
}
location /statics {
root /ihcc/files/uploadFile/;
}
location /prod-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.80.111:8080/;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
#重启nginx
docker restart nginx
#页面访问成功则结束所有配置
http://192.168.80.111/
其他
APM相关设置
若在实际应用中用到APM则需要进行以下的预设操作,例如拓扑管理功能
-
APM模板预设
1 必须包含一个分组为IHCC,根节点为IHCC的模板,根据当时的需求,此模板用于拓扑结构的根节点 2 除了根节点对应的拓扑结构的其他层级模板,为了拓扑管理的模板选择及同步的操作
-
APM中配置DataHub:在APM的系统配置中增加Datahub租户配置
-
Datahub中设备预设:用于拓扑管理中的设备绑定
标签:整套,为例,ihcc,redis,nacos,nginx,sh,IHCC,docker 来源: https://www.cnblogs.com/-hing-/p/15438494.html