Jenkins

jenkins 一个持续集成和交付的服务器。

Docker安装

这里使用docker镜像的方式安装,如果不懂docker 请移步[docker.io]

下载

如果比较慢请使用国内镜像库。

docker pull jenkins

启动

大概分为三种情况:

  • 直接启动即可
docker run -p 8080:8080 -p 50000:50000 jenkins
  • 映射容器目录到本地
docker run -p 8080:8080 -p 50000:50000 -v /your/home:/var/jenkins_home jenkins
  • 使用数据容器卷启动
docker run --name myjenkins -p 8080:8080 -p 50000:50000 -v /var/jenkins_home jenkins

这里使用第二种方式
建立目录用来存储jenkins容器数据

# mkdir -p /var/data/docker/jenkins

jenkins容器会以uid 为 1000来访问此目录,确保具有访问权限。

# chown 1000 /var/data/docker/jenkins

jenkins容器会使用8080和50000端口,并映射建立的目录

# docker run -dp 8080:8080 -p 50000:50000 -v /var/data/docker/jenkins:/var/jenkins_home jenkins

Docker安装请参考[Docker Jenkins]

值得注意的时,如果直接在centos下安装,请务必安装java-openjdk(yum install java-1.8.0-openjdk)版,jenkins使用的java不支持其他jdk。

配置

不管何种方式安装启动,一下内容基本上一致。
浏览器输入http://192.168.34.132:8080/:会显示如下

jenkins 安装

请去安装目录查找此文件。
如果是docker: 打开刚才建立的目录/var/data/docker/jenkins/下的secrets/initialAdminPassword查看初始化密码输入即可,如果容器不使用-d选项启动过程显示出初始化密码;
下一步选择安装插件(可能比较慢):

  • 在线安装选择推荐插件或者选择所需安装;
  • 离线跳过在系统管理里安装插件;
  • 下载插件到本机安装,离线安装请参考[Offline+Jenkins+Installation]

下一步设置用户;
至此jenkins安装配置完成。

使用

jenkins支持Java、.NET、iOS、Android 等众多平台项目;构建工具支持maven、ant、gradle;源码管理支持git、cvs、svn等;这里以自动构建Java平台的maven项目用svn为例构建持续集成过程。

建立项目

请先安装MAVEN插件[Maven Integration plugin]和配置全局工具

安装插件
[系统管理]-[插件管理]-[可选插件] 搜索[Maven Integration plugin]

安装工具
[系统管理]-[全局工具配置]-需要安装JDK 和MAVEN,如果使用git和docker请自行安装。

  • JDK
    在这里插入图片描述
  • MAVEN
    在这里插入图片描述
    新建输入项目名称,选择[构建一个maven项目]

maven项目

源码管理选择[Subversion],输入项目svn地址,Add一个Credentials,输入svn用户和密码:

源码管理

添加svn用户

添加svn用户

如果使用git,本机为192.168.34.132,请确保在本机(jenkins用户下,jenkins以此用户运行的)上可以免密码登陆git用户@192.168.34.133,关于ssh免密登陆请参阅相关配置。
如果免密登陆失败,请查看/var/log/secure日志。
以下为ssh相关文件权限:

用户目录权限为 755 或者 700,一定不能是77x;
.ssh目录权限一般为755或者700;
authorized_keys和rsa_id.pub权限一般为644;
rsa_id权限必须为600。

Build和Post Steps
Build:输入maven的pom文件路径和执行的Goals;
Post Steps:执行ssh命令将编译好的jar包复制到133上运行;

这里写图片描述

本机为192.168.34.132,请确保在本机(jenkins用户下,jenkins以此用户运行的)上可以免密码登陆root@192.168.34.133,关于ssh免密登陆请参阅相关配置。
最后选择保存即可。

项目构建

在项目提交源码到svn上之后
回到首页选择我们刚刚建立的项目,进入项目页面点击立即构建:

项目构建

可以选择 [Build History] 最后一次构建的任务,在选择[Console Output]可以查看任务构建过程:

构建过程

看一看到Finashed SECCESS,就可以访问到192.168.34.133上启动服务了。

邮件通知

jenkins可以在构建成功后进行邮件通知,请确认jenkins安装了Email Extension Plugin 插件;
[jenkins]->[系统配置]

配置系统管理员邮件地址
邮件设置

配置邮件发送服务器和账户相关信息

邮件发送服务

可以测试可以发送邮件。
在项目配置里勾选[E-mail Notification] 或者[构建后Editable Email Notification] 填写收件人接口在构建后发送邮件通知。

最后,如果tomcat可以停止,却启动不了,有如下解决方案:

  • 启动 Jenkins 的时候加上 -Dhudson.util.ProcessTree.disable=true。
  • 在后台进程前加上 BUILD_ID=dontkillme或者正在自己的sh文件中加入如下:
export BUILD_ID=dontkillme
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐