自动化运维之Jenkins
前提条件:安装好jdk (版本要求11-17)并配置好环境变量
一、Jenkins
1、Jenkins是什么
Jenkins是一个开源的持续集成服务,用于实施软件开发和发布流程。它帮助软件开发和运维团队在构建、测试和部署软件上实现自动化,使团队能够更快、更准确、更可靠地交付产品。Jenkins是一个可扩展的持续集成引擎,具有丰富的插件系统,可以自由组合,以支持范围广泛的作业类型,如持续构建、持续交付、自动测试和质量检查。
2、windows下载及安装使用
下载路径(镜像):http://mirrors.jenkins-ci.org/
下载路径(官方):https://jenkins.io/download/
可选择下载.msi文件(下载后点击进行安装)或者.war压缩包(直接放在对应文件夹下)
启动命令:
在Jenkins根目录下,cmd输入命令:java -jar jenkins.war 或者java -jar jenkins.war --httpPort=8088(有指定端口的情况)
停止命令:
cmd输入命令:net stop jenkins 一样也是要以管理员身份运行,不然会报“发生系统错误 5。 拒绝访问”
直接重启
在浏览器地址后加上restart,即:http://127.0.0.1:8099/restart
3、linux下载及安装使用
同Windows方式一样,下载war包上传至root目录,使用java -jar jenkins.war --httpPort=8080
启动即可;
二、实战
2.1、publish over ssh 配置
1 安装插件
在Configure System菜单里 往下来
2 添加一台目标服务器
3 修改配置
4、超时机制
输出命令时一定要注意不要让窗口卡主,不然Jenkins会认为认为一直没完成
shell的日志输出:
nohup java -jar /root/xxoo/demo*.jar >mylog.log 2>&1 &
5 运行前清理
#!/bin/bash#删除历史数据
rm -rf xxooappname=$1
#获取传入的参数
echo "arg:$1"#获取正在运行的jar包pid
pid=`ps -ef | grep $1 | grep 'java -jar' | awk '{printf $2}'`echo $pid#如果pid为空,提示一下,否则,执行kill命令
if [ -z $pid ];
#使用-z 做空值判断thenecho "$appname not started"elsekill -9 $pidecho "$appname stoping...."check=`ps -ef | grep -w $pid | grep java`
if [ -z $check ];thenecho "$appname pid:$pid is stop"elseecho "$appname stop failed"fifi
|||、遇到的问题
1、jenkins报错:HTTP ERROR 404 Not Found
解决方案:
1、查看端口是否放开;
2、查看防火墙放开;
3、杀掉进程重新启动;
2、mysql问题
问题一:mysql错误连接数太小;
问题二:mysql连接无时区