跳转至

Jenkins持续集成工具


2017-05-02 by dongnan

简介

Jenkins 可以帮助你构建一个自动化的持续集成环境,你可以使用它来自动化编译、打包、分发部署你的应用, 它兼容 ant、maven、gradle 等多种第三方构建工具,同时跟 svn、git 能无缝集成。

目标

  • 复盘 jenkins 部署,初始化,使用过程。
  • CI 持续集成做好准备工作。

部署

准备工作

系统环境

head /etc/centos-release
CentOS Linux release 7.3.1611 (Core)

Java 环境

# 安装jdk
yum install java java-1.8.0-openjdk-devel

# 环境变量
tail -n1 /etc/profile
export JAVA_HOME='/usr/lib/jvm/jre'

maven 环境

tomcat 环境

部署 jenkins

下载软件包

wget -c http://mirrors.jenkins.io/war-stable/latest/jenkins.war
cp jenkins.war  /usr/local/tomcat/webapps/

tomcat 自动解包

file /usr/local/tomcat/webapps/jen*
/usr/local/tomcat/webapps/jenkins:     directory
/usr/local/tomcat/webapps/jenkins.war: Zip archive data, at least v2.0 to extract

jenkins 初始密码

cat /root/.jenkins/secrets/initialAdminPassword
e2b41e0bc162482b81c4f24848e11xXx

初始化 jenkins

  • 浏览器访问 http://your_server_ip:8080/jenkins 开始初始化安装。
  • 如果执行默认的安装,Jenkins 会自动帮你配置 Maven、git 等常用插件。
  • 并创建一个 admin 用户,完成安装。

设置环境变量

tail -n1 /etc/profile
export JENKINS_HOME='/root/.jenkins'

jenkins 目录结构

tree -d -L 1 /root/.jenkins/
/usr/share/tomcat/.jenkins
├── cache
├── fingerprints
├── jobs
├── logs
├── nodes
├── plugins
├── secrets
├── updates
├── userContent
├── users
├── workflow-libs
└── workspace

12 directories

验证

部署完成的,jenkins 截图:

使用 jenkins

初始配置

jenkins 中,一切功能即插件,下面以安装语言插件为例,其它插件安装方法类似。

更改语言

# 安装插件
manage jenkins -> manage plugins -> avaiable -> filter locale ;
勾选 install ->  download now and install after restart -> 等待安装完毕 -> 勾选 Restart Jenkins whten install ...

# 设置中文
manage jenkins -> configure system -> Locale-> 输入 zh_CN -> 勾选忽略浏览器.... -> save ,下图是调整后的中文首页;

安装 maven 插件

maven 插件用于创建 maven job ,如果你的是 java 项目使用 maven 进行项目构建,那么相应的 jenkins 需要 maven 插件支持。 安装方式与上面相同,不再重复,图片是安装过程截图;

配置第三方工具

这里的第三方工具是指,git/maven/svn/jdk 等用于辅助 jenkins 的工具,例如:maven

manage jenkins -> global tool configuration -> maven -> 按照实际情况配置maven 如下图:

构建第一个Job

以一个典型的 java 项目为例,使用 git 管理源码,使用 maven 编译程序,使用 tomcat 容器运行 war 程序包。

而下面就是使用 jenkins 自动完成,git 代码检查,以及使用 maven 构建 war 包。

创建 maven 项目

jenkins-create-maven-job

填写项目名称, 单击ok ,依次填入以下信息:

项目基本信息

  • 项目的简单信息,除了项目名称,其它可以不需要;

源码管理

  • 这个没什么可说的,这里就是 git 项目地址(svn),如果 使用的是分支,在 branch 填写分支;

构建触发器

这里,推荐使用 poll scm ,例如 每5分钟检查一次 git仓库,如果代码有变化,则触发编译,其它选项可以参考下面的;

  • Build whenever a SNAPSHOT dependency is built 这个触发器是当pom.xml中的发生了变化时,就会触发一次构建。这个选项在持续集成时非常有用。

  • Build after other projects are built 这个触发器是在其它的项目(上游项目)构建完成以后执行的。例如一个测试项目,可以在测试的目标项目构建完成以后开始构建。

  • Build periodically 周期性的构建任务。Jenkins实现这个功能时,采用的是Quartz框架,所以可以在这里配置Corn表达式。(参考Linux Crontab)

  • Poll SCM 这个构建方式,也需要配置一个Cron表达式。它的执行过程是这样的:(参考Linux Crontab) 根据Cron表达式周期性的询问SCM Server,如果发生了改变,才会触发构建动作。所以这个方式要比周期性构建更好一些。

构建环境

  • 保持默认即可。

pre setps (编译之前的步骤)

  • 保持默认即可。

build (编译)

这个是 maven 构建时需要的参数, pom.xml 为 maven默认的选项。

图片中,clean package 这是 maven 先进行 clean 清理,再进行 package 打包。

Post Steps (提交步骤)

  • 这个是 build 完成后,额外的步骤,有 shell 脚本等多种选项,以 docker 打包镜像为例:

构建设置

  • 勾选 邮件通知。

构建后操作。

执行构建job

配置完毕,点击立即构建,就开始了项目构建过程了。

构建状态

  • 图标:表示当前job的状态,不同的颜色表示不同的状态:
  • 蓝色:最近一次构建是成功的。
  • 红色:最近一次构建是失败的。
  • 黄色:最近一次构建是成功的,但是有一些测试用例是失败的。
  • 灰色:job被禁用或者还没有开始构建。
  • 图标处于闪烁状态,表示正在构建。

扩展功能

jenkins 邮件通知功能

图文并茂,请参考这篇文章。jenkins使用Email Extension Plugin插件配置邮件通知

jenkins 添加用户权限

图文并茂,请参考这篇文章。jenkins配置记录(1)--添加用户权限

参考

欢迎关注微信公众号: 运维录

Back to top