jenkins结合ansible和supervisord 启动java服务

时间:2024-01-23 17:44:46

书接上回 https://blog.51cto.com/825536458/9325699 这篇主要介绍了jenkins结合ansible的使用方法 下面介绍jenkins结合ansible和supervisord 启动java服务

一 安装supervisord-在java服务器配置

yum install -y epel-release
yum install supervisor -y


systemctl start supervisord.service  #启动supervisord服务

supervisorctl update  #更新配置文件

supervisorctl restart saas  #重启对应的java进程

supervisorctl status  #查看服务运行状态

二 配置文件设置-在java服务器配置


[program:saas] #自定义
directory=/www/wwwroot/saas/  #需要更改
command=java -jar saas-client-1.0-SNAPSHOT.jar --spring.profiles.active=prod  #需要更改

priority=1                    ; 数字越高,优先级越高
numprocs=1                    ; 启动几个进程
autostart=true                ; 随着supervisord的启动而启动
autorestart=true              ; 自动重启
startretries=10               ; 启动失败时的最多重试次数
exitcodes=0                   ; 正常退出代码
stopsignal=KILL               ; 用来杀死进程的信号
stopwaitsecs=10               ; 发送SIGKILL前的等待时间
redirect_stderr=true          ; 重定向stderr到stdout
stdout_logfile=/mnt/saas/saas.log  #需要更改
stdout_logfile_maxbytes=100MB   ; max # logfile bytes b4 rotation (default 50MB)
stdout_logfile_backups=5

三 jenkins设置

image.png

image.png

image.png

image.png

image.png

image.png

四 supervisor.sh脚本内容

#!/bin/bash

jar_file=`ls ${WORKSPACE}/target/*.jar`

DATE=`date +"%Y-%m-%d-%H-%M"`
HOST=$1 #hwtest,pre_shandong,pre_zuigaoyuan
project=$2  #路径的名字
commond="cat /etc/profile | grep 'export JAVA_HOME' |cut -d '=' -f 2"

cmd=`ansible $HOST -m shell -a "$commond" -b`
JAVA_PATH=`echo $cmd |awk '{print $7}'`

path=/www/wwwroot/$project

#建立backup目录
ansible $HOST -m shell -a "mkdir -p $path/backup" -b
#备份之前的jar包
ansible $HOST -m shell -a "cd $path;mv *.jar $path/backup/" -b

## 拷贝jar包
ansible $HOST -m copy -a "src=$jar_file dest=$path" -b

## 重启服务
ansible $HOST -m shell -a  "supervisorctl restart $project"

## 查看服务
ansible $HOST -m shell -a "ps -ef | grep $project | grep -v grep"
ansible $HOST -m shell -a "supervisorctl status"

五 构建

选择你的分支和主机即可 image.png