jenkins

文章目录

  • jenkins的安装
  • jenkins常用插件
    • 中文插件
    • git插件
    • maven插件
    • github插件
    • 控制远程主机插件
    • 定时构建插件
    • git push时构建插件
  • jenkins全局配置
  • jenkins构建springboot项目

jenkins的安装

  1. 下载jenkis的rpm包(官网)
  2. 安装rpm包
rpm -ivh jenkins-2.7.3-1.1.noarch.rpm
  1. 配置jenkins的全局设置
vi /etc/sysconfig/jenkins
  • 修改端口,默认8080
    找到修改端口号:
    JENKINS_PORT=“8080” 此端口不冲突可以不修改

  • 修改默认用户
    JENKINS_USER=“root”

  • 修改jenkins默认路径(/var/lib/jenkins)
    JENKINS_HOME="/var/lib/jenkins"

  1. 配置java环境,修改/etc/init.d/jenkins文件
    jenkins_第1张图片
  2. 启动
service jenkins start/stop/restart

jenkins常用插件

在系统配置中有插件管理按钮,点进去
jenkins_第2张图片
点击可选插件,在右上角过滤中搜索相关插件就ok了
jenkins_第3张图片

中文插件

  • Localization: Chinese (Simplified) :支持将英文转换为中文的一个插件。

git插件

  • Git plugin :支持在构建的时候使用git。

maven插件

  • Maven Integration:支持构建maven项目。

github插件

  • GitHub Integration:支持从github上持续集成。

控制远程主机插件

  • Publish Over SSH:将构建好的项目push到远程指定机器中跑。
举几个例子:
每隔5分钟构建一次
H/5 * * * *

每两小时构建一次
H H/2 * * *

每天中午12点定时构建一次
H 12 * * *

每天下午18点定时构建一次
H 18 * * *

在每个小时的前半个小时内的每10分钟
H(0-29)/10 * * * *

每两小时45分钟,从上午9:45开始,每天下午3:45结束
45 9-16/2 * * 1-5

每两小时一次,每个工作日上午9点到下午5点(也许是上午10:38,下午12:38,下午2:38,下午4:38)
H H(9-16)/2 * * 1-5

定时构建插件

  • Timestamper 定时任务插件。

git push时构建插件

  • Gitlab Hook 一旦检测到git仓库有变化时触发构建

jenkins全局配置

在系统设置>全局配置文件中进行配置
jenkins_第4张图片
配置jdk,maven,git信息

jenkins构建springboot项目

背景介绍:现有2台服务器A和B,正在开发的springboot的github项目,服务器A部署jenkins,服务器B部署springboot项目。现要求用jenkins实现持续部署。jenkins不断检测github代码是否变更(比如git push),如果变更,能够自动实现拉取,构建,部署到服务器B的功能。

  1. 安装jenkins插件Gitlab Hook,Maven Integration,Git plugin,GitHub Integration,Publish Over SSH。
  2. 构建新的jenkins的maven任务。
    jenkins_第5张图片
  3. 配置源码管理,选中git,配置url和指定分支
    jenkins_第6张图片
    如果这里报错,需要将rsa秘钥添加到github上去。
  4. 配置git push触发器
Trigger builds remotely (触发远程构建,如使用远程脚本触发自动构建):可通过电子邮件触发项目构建,或通过脚本提交一个构建请求

Build after other projects are built (在其他项目构建完成后执行该构建):可设置多个依赖的jobs,当任意一个依赖的job成功构建后启动此构建,多个依赖的jobs之间用","隔开

Build periodically (定期构建):不管源码是否有更新,周期构建,在”日程表“中定义触发时间

Build when a change is pushed to Github (当源码更新推送到Github后执行该构建):

Poll SCM (定期检查源码是否更新):定时检查源码更新,有更新则执行构建,没有更新就不执行;在”日程表“中定义触发时间

这里勾选Poll SCM,填入 “H/2 * * * *” 代表每2分钟检查一次更新,如果更新就重新构建。

  • stop.sh的脚本如下
# 将应用停止
#stop.sh
#!/bin/bash
echo "Stopping SpringBoot Application"
pid=`ps -ef | grep sys.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
   kill -9 $pid
fi

#此处conference_system-1.0.jar根据自己的jar包名称修改
  • replace.sh脚本如下
#replace.sh 用于将上次构建的结果备份,然后将新的构建结果移动到合适的位置
#!/bin/bash
# 先判断文件是否存在,如果存在,则备份
file="/root/conference_system/sys.jar"
if [ -f "$file" ]
then
   mv /root/conference_system/sys.jar /root/conference_system/old_version/sys.jar.`date +%Y%m%d%H%M%S`
fi
cp /var/lib/jenkins/jobs/conference-management-system-back-end/workspace/target/conference_system-1.0.jar /root/conference_system/sys.jar
  1. 推送jar包到远程主机并运行。
    在此之前需要配置Publish over SSH
    jenkins_第7张图片

Name: 给主机取名
Hostname: 远程服务器ip地址
Username: 用户名
Remote Directory: 默认进入的目录
Passphrase: 密码

  • 在构建后运行添加ssh
    jenkins_第8张图片

  • 之后填写相关信息
    jenkins_第9张图片

Source files 需要复制到目的服务器的jar包,注意这里的默认起始路径是workspace

Remove prefix 去前缀,只留下jar包

Remote directoty 发布到远程机器的的目录,注意这里的默认起始路径是是你在设置中配置的。

Exec command 发布完执行的命令,在复制之后需要调用里面的shell命令,注意如果是java程序需要source环境变量将java导入。

  • 高级中的一些选项
    jenkins_第10张图片
    这两个意思是取消等待和等待时长(ms)

你可能感兴趣的:(持续集成)