jenkins自动化部署学习

一、安装 Jenkins

1.下载rpm包
cd /opt
在这里插入图片描述
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.290-1.1.noarch.rpm
在这里插入图片描述
2.解压rpm包
sudo rpm -ih jenkins-2.290-1.1.noarch.rpm
在这里插入图片描述
3 查看安装目录
rpm -ql jenkins
在这里插入图片描述
/usr/lib/jenkins/jenkins.war WAR包
/etc/sysconfig/jenkins 配置文件
/var/lib/jenkins/ 默认的JENKINS_HOME目录
/var/log/jenkins/jenkins.log Jenkins日志文件
4.修改配置
vim /etc/sysconfig/jenkins

JENKINS_PORT=“8091” 端口号修改,默认8080可能会冲突
–最好改成root,不然会报错权限不足
JENKINS_USER=“root”
在这里插入图片描述
添加环境
找到jdk安装目录
find / -name java
在这里插入图片描述
vim /etc/init.d/jenkins
在这里插入图片描述
5启动jenkins
systemctl daemon-reload
systemctl start jenkins
在这里插入图片描述

二 配置自动化部署

1.访问验证
在这里插入图片描述
2.查看密码
cat /var/lib/jenkins/secrets/initialAdminPassword
在这里插入图片描述
输入获取到的密码
在这里插入图片描述
多等一会。。。。。
在这里插入图片描述
3.选择安装推荐插件
在这里插入图片描述
这里下载插件等了很久,如果有插件未安装成功可以重试,重试还是不成功点继续;后续配置加速再安装
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
任务名
在这里插入图片描述
新建一个freestyle project
在这里插入图片描述
描述
在这里插入图片描述
服务器资源是有限的为了防止磁盘被占用过多设置丢弃就得构建参数
在这里插入图片描述
设置git地址
在这里插入图片描述
添加git用户名和密码
在这里插入图片描述
使用刚添加的用户名和密码拉取代码
在这里插入图片描述

设置要构建的分支
在这里插入图片描述
在这里插入图片描述
设置构建触发(什么时候触发构建项目)
在这里插入图片描述

1.定时构建

字段*****
含义分钟小时日期月份星期
取值范围0-590-231-311-120-7
示例
每隔15分钟执行一次H/15****
每隔2个小时执行一次HH/2***
每隔3天执行一次HHH/3**
每隔3天执行一次(每月的1-15号)HH1-15/3**
每周1,3,5执行一次HH**1,3,5

定时构建就是没隔一段时间就是构建1次任务

0 * * * * 代表每小时0分的时候构建1次项目

第1个代表分,第2个代表时,第3个代表日,第4个代表月,第5个代表周
验证是否能拉取代码
2.轮询SCM

轮询SCM就是查看源码管理的代码有没有更新,如果更新了就去构建,没有更新就不会构建

*/5 * * * * 代表每5分钟就去查看源码有没有更新
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装插件git parameter
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
参数化构建,可以构建时可以选择分支
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可选择分支构建
在这里插入图片描述
下载连接远程服务器插件
在这里插入图片描述

Deploy to container插件远程发布插件
在这里插入图片描述
在这里插入图片描述
配置远程服务器
在这里插入图片描述
在这里插入图片描述
测试下
在这里插入图片描述
远程目录是指打的包会传到远程服务器的哪个目录下
成功
传输包到远程服务器
在这里插入图片描述
这里的远端目录是基于上面配置远程服务器的远程目录而言的
在这里插入图片描述
在远程服务器上查看war包
在这里插入图片描述
设置启动脚本
在这里插入图片描述
执行启动脚本时遇到遇到一个错误
ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [-1]]
最终结果是
Build step ‘Send files or execute commands over SSH’ changed build result to UNSTABLE
在这里插入图片描述
原因是启动脚本在启动前会先杀掉所有进程
在这里插入图片描述

在这里插入图片描述
ps查询到的进程包含查询进程自身,当管道进行到kill的时候,所有进程一同被杀死,而Jenkins仍然在等待ps进程返回exit 0,事实上它永远等不到了,因为进程都没了,
就像下面这样查询nginx进程,不仅能查到所有nginx进程,同时还有查询nginx进程命令本身的进程,执行kill会杀死本身
在这里插入图片描述解决方法
查询进程时加一层管道grep -v grep过滤掉自身进程
在这里插入图片描述

突发奇想将杀进程脚本和杀进程脚本分开执行却成功了
在这里插入图片描述
这里将脚本分成了三段,第一段执行将war包传到远程服务器上,第二段杀掉正在运行的后台服务,第三段启动服务并进行数据清理
在这里插入图片描述
经过尝试只能分成三段,分成两段把杀进程脚本放在传输war包段会报
ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [-1]]
放在启动清理段会报
ERROR: Exception when publishing, exception message [Exec timed out or was interrupted after 12,000 ms]

加上grep -v grep后依然有同样的错误,推测可能还是杀到了jenkins进程
写了个循环打印ps查询进程的脚本,在jenkins执行远程命令的时候发现多处了jenkins执行脚本的进程

在这里插入图片描述
至此构建不稳定的原因终于找到了
从图中可以看出jenkins执行远程脚本的时候是将所有远程脚本变成一条命令执行的
在这里插入图片描述
这条命令又匹配到ps查找的进程;如果杀进程的话就会杀掉自己。所以jenkins远程脚本中杀进程,要么能排除调jenkins本身的那个进程,要么把杀进程的脚本单独执行

三 邮件通知

1.安装插件
在这里插入图片描述
2.配置系统插件
在这里插入图片描述
2.设置系统管理员邮箱
在这里插入图片描述
收件人邮箱,多个用,隔开
在这里插入图片描述
3.默认触发机制
在这里插入图片描述
在这里插入图片描述
发送邮件的邮箱和密码
在这里插入图片描述
默认收件人列表
在这里插入图片描述
全局配置后还需要在项目里配置邮箱
在这里插入图片描述
在这里插入图片描述
勾选这两个就可以
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值