CentOS8安装Goploy代码部署工具

1、安装MYSQL
2、安装Git客户端
3、下载Goploy安装包

注意,可能存在宕机风险,因为github包下载失败,解决办法,使用国内go镜像
在这里插入图片描述

mkdir goploy
./goploy
请输入mysql的用户:

请输入mysql的密码:

请输入mysql的主机(默认127.0.0.1,不带端口):

请输入mysql的端口(默认3306):

请输入日志目录的绝对路径(默认stdout):

请输入监听端口(默认80,打开网页时的端口,先检查端口是否被占用):

#输入完成稍等片刻即可安装完成

在这里插入图片描述
4、新开一个窗口,开放8126端口

firewall-cmd --zone=public --add-port=8126/tcp --permanent
systemctl restart firewalld

5、浏览器输入
10.0.0.63:8126
用户名:admin 密码:admin!@#
在这里插入图片描述
在这里插入图片描述
6、当前机器生成public-key

ssh-keygen
#后面一直按Enter键就可以了

在这里插入图片描述
7、复制public-key

cd ~
cd .ssh
cat id_rsa.pub
#复制公钥

8、找到需要部署服务的B机器

cd ~
cd .ssh
#查看是否存在authorized_keys文件,如果不存在,新增,否则无需处理
ll

在这里插入图片描述
9、新增authorized_keys(不一定需要)

touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

在这里插入图片描述
10、复制上面的公钥进入当前文件

vim authorized_keys
#复制保存
ESC + :wq
cat authorized_keys

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
之后点击确认,多个服务器可以使用导入
(一)、需要导入的服务器在authorized_keys中添加public-key
(二)、新建一个import.txt
在这里插入图片描述
(三)、修改后缀名为import.csv
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
11、环境配置
在这里插入图片描述

12、角色用户配置
在这里插入图片描述
(一)、超管有所有权限
(二)、zhangsan(开发者),王五(测试),赵六(产品)
在这里插入图片描述
13、根据Git构建流水线
公有云,无需用户名密码,如:码云
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
私有云的GIt路径,如阿里云
(一)、点击个人设置
在这里插入图片描述
(二)、记住用户名,设置密码(如果已经设置无需重复设置)
在这里插入图片描述

(三)、设置Git路径
https://username:password@code.aliyun.com/xxxx-xxx-vehicle/vehicle-admin.git
username替换前面Username的名称,password替换私人令牌
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

14、拉取代码定义执行脚本
(一)、新增文件夹(已经存在的可以不添加)

cd /var
mkdir www
cd www
#下载的git项目根目录
mkdir app
#打包之后,移动的前端根目录
mkdir front
#打包之后,移动的后端根目录
mkdir server
#执行的脚本
mkdir sh
cd sh
mkdir begin
mkdir after
cd ../
#标准工具或文件,如固定的tomcat版本的(需要先放入文件),使用阿里云tomcat服务,需要下载阿里云tomcat,放入阿里云插件
mkdir template
#赋予当前文件夹和子文件夹包括文件都可读可写可执行
chmod -R 777 /var/www

(二)、复制Tomcat(已经存在不用添加)

cd server
cp ../template/apache-tomcat-8.5.78.zip ./
unzip apache-tomcat-8.5.78.zip 
mv apache-tomcat-8.5.78 ./vehicle-admin
rm -rf apache-tomcat-8.5.78.zip
#修改为对应的端口
vim vehicle-admin/conf/server.xml
#使用HSF需要添加HSF端口,不使用,可以不处理
vim vehicle-admin/bin/catalina.sh
JAVA_OPTS="$JAVA_OPTS -Dcatalina.vendor=alibaba"
JAVA_OPTS="$JAVA_OPTS -Dhsf.server.port=12239 -Dpandora.qos.port=60710 -Dtomcat.monitor.port=64011 -Dsentinel.port=64208"  

在这里插入图片描述

(三)、新增执行脚本(已经存在不用添加)

cd sh
cd begin
touch vehicle-admin.sh
chmod +777 vehicle-admin.sh
vim vehicle-admin.sh

#编译脚本

#!/bin/sh 
#build vehicle-dmin

export JAVA_HOME=/opt/jdk1.8.0_144
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar;
export MVN_HOME=/opt/apache-maven-3.8.5
export PATH=$PATH:${JAVA_HOME}/bin:${MVN_HOME}/bin:

cd /war/pkgs/vehicle-admin
#-Ptesting testing表示打包额pom文件Profiles,看下图
mvn clean package -Dmaven.test.skip=true -Ptesting

在这里插入图片描述

cd ../
cd after
touch vehicle-admin.sh
chmod +777 vehicle-admin.sh
vim vehicle-admin.sh

启动脚本

#!/bin/sh 
#copy file and restart vehicle-admin

cd /var/www/app/vehicle-admin
#后端打包-Ptesting对应打包的版本
mvn clean package -Dmaven.test.skip=true -Ptesting

tomcat_path=/var/www/server/vehicle-admin
#注意war包全名
war_name=vehicle-admin-1.0.war

NAME=vehicle-admin
ID=`ps -ef | grep "$NAME" | grep -v "$0" | grep -v "grep" | awk '{print $2}'`
for id in $ID
do
kill -9 $id
done
sleep 2

rm -rf ${tomcat_path}/webapps/* ${tomcat_path}/work/Catalina
cd ./target
if [ -f ${war_name} ];then
   cp ${war_name} ${tomcat_path}/webapps
   cd ${tomcat_path}/webapps/
   mv ${war_name} ROOT.war
else
   echo "${war_name} unexists"
fi
/bin/sh /var/www/server/vehicle-admin/bin/startup.sh

运行构建信息,查看流水线是否成功

在这里插入图片描述

15、服务后台启动
(一)、关闭服务Ctrl+C
(二)、编辑启动文件

cd /lib/systemd/system
vim goploy.service
[Unit]
Description=The Goploy
After=network.target

[Service]
Environment="HOME=/root"
#安装goploy的路径
WorkingDirectory=/opt/goploy
#执行的路径
ExecStart=/opt/goploy/goploy

[Install]
WantedBy=multi-user.target
#保存
Esc wq:
#重新加载systemctl
systemctl daemon-reload
#可以设置自动启动,根据实际情况设置
systemctl enable goploy.service
#启动
systemctl start goploy.service

(三)重新启动
在这里插入图片描述
16、安装goploy-agent(配合goploy使用)
Install path:安装路径
在这里插入图片描述
Report URL(上报日志服务器路径前缀,其实就是goloy调用前缀):http://10.0.0.195:8162
在这里插入图片描述
等待安装,1分钟后,查看在

cd /opt/goploy-agent/
ls

如果没有文件,因为默认使用github下载,可能下载不了,可以自己通过gitee(码云下载),之后手动上传
17、安装goploy-agent(单独安装)
(一)、下载Goploy-agent启动包
(二)、新建目录

cd /opt/goploy
mkdir goploy-agent
touch goploy-agent.toml
chmod +777  goploy-agent.toml
vim  goploy-agent.toml
env = 'production'

[goploy]
# 服务器路径
reportURL = 'http://10.0.0.195:8126'
# 使用cat goploy.toml查看当前服务器的的key时间,两者需要相同,否则验证sign失败
key = '2021-12-17 10:44:44.5198737 +0800 CST m=+0.003999901'
# Support id | name | host
uidType = 'id'
#服务器ID(在服务器设置页面,显示的ID,IP需要跟ID一一对应,否则上报数据错误)
uid = 1

[log]
path = 'stdout'

[web]
port = '3002'

(三)、上传下载的goploy-agentd到当前目录
在这里插入图片描述
(四)、编写启动脚本

cd /lib/systemd/system
vim goploy-agent.service
[Unit]
Description=The Goploy
After=network.target

[Service]
Environment="HOME=/root"
#安装goploy的路径
WorkingDirectory=/opt/goploy/goploy-agent
#执行的路径
ExecStart=/opt/goploy/goploy-agent/goploy-agent

[Install]
WantedBy=multi-user.target
#保存
Esc wq:
#重新加载systemctl
systemctl daemon-reload
#可以设置自动启动,根据实际情况设置
systemctl enable goploy-agent.service
#启动
systemctl start goploy-agent.service

(五)开放端口3002

firewall-cmd --zone=public --add-port=3002/tcp --permanent
systemctl restart firewalld

浏览器输入 10.0.0.63:3002
在这里插入图片描述
过1分钟(可以先使用goploy-agent:port如10.0.0.193:3002查看agent是否正常启动)
查询goploy数据的server_agent_log表是否存在日志数据(判断goploy是否跟goploy-agent连接)
在这里插入图片描述
在这里插入图片描述
18、定义报警,发送通知(这里用的是钉钉)
(一)、创建钉钉报警通知群
(二)、添加机器人
在这里插入图片描述
点击添加机器人
在这里插入图片描述
发送消息必须匹配关键字
复制路径,包含access_token
在这里插入图片描述
选择钉钉,把刚刚的路径放入
存在缓存,等一段时间,就能接收到报警通知。
在这里插入图片描述
19、添加生产环境URL访问失败通知功能(防止生产环境突然宕机,客户提醒之后才发现)
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值