书接上回 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设置
四 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"
五 构建
选择你的分支和主机即可