程序员

[原创] Jenkins—从入门到半桶水专家

2017-12-06  本文已影响0人  赵国开

1 为什么要引入jenkins


2 jenkins安装


我安装的机器软件环境是

Ubuntu 14.04.4 LTS trusty

按下面jenkins官网的命令进行安装,有些问题(我这边系统的默认ppa源有点旧无法自动安装依赖的Java8环境)

wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ >/etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins

2.1 软件手动安装

需要提取预装Java 8或者更高版本的的JRE或者JDK都可以
我这边安装的是oracle的JDK
1)添加ppa

$sudo add-apt-repository ppa:webupd8team/java
$sudo apt-get update

2)安装jdk8

$sudo apt-get install oracle-java8-installer

安装器会询问你是否同意oracle的服务条款,同意即可
因为我这边下载速度很慢,我中断了安装,去oracle官网下载JDK包

jdk-8u151-linux-x64.tar.gz

放在/var/cache/oracle-jdk8-installer,删除上一次安装的锁和缓存数据,重新安装就会用下载好的包进行安装

$sudo rm -f /var/lib/dpkg/lock
$sudo rm -f /var/cache/apt/archives/lock
$sudo rm -f /var/cache/debconf/*
$sudo dpkg --configure -a
$sudo apt-get install oracle-java8-installer

3)设置系统默认jdk版本

$sudo update-java-alternatives -s java-8-oracle

查看jdk看是否安装成功

$java -version

4)安装jenkins的安装包
直接在官网下载最新的安装包jenkins_2.73.3_all.deb,用dpgk安装不会自动安装依赖的软件,如果提示需要依赖其他软件用apt-get install自行安装

$sudo dpkg -i jenkins_2.73.3_all.deb

5)其他问题
如果你不是按步骤2进行安装JDK而是解压进行安装JDK的话,配置并启用JDK的相关环境变量之后,进行deb包的安装提示用的还是旧的JDK环境,需要进行下面设置(使用解压安装JDK的话,Ubuntu的包管理器并不清楚我们已经安装了最新的jdk,因此我们需要将我们安装的jdk信息加入到Ubuntu的包管理器当中)

$sudo apt-get update
$sudo apt-get remove default-jre default-jdk
$sudo apt-get update
$sudo apt-get install default-jre default-jdk

6)测试jenkins安装是否成功
在安装的机器上使用浏览器登录http://localhost:8080/(如果在其他机器上登录,需要把localhost替换成安装机器的具体IP,我这边安装jenkins机器的IP是172.16.1.143,我的win7机器上进行登录直接输入:http://172.16.1.143:8080/)
如果能出现jenkins的相关界面说明安装已经成功。

2.2 简易安装

3 jenkins配置


3.1 初次使用的基本配置

安装成功之后,会有一个jenkins用户,jenkins的home目录默认在

/var/lib/jenkins

1)解锁jenkins
登录http://localhost:8080/,如果是第一次登陆会要求你进行解锁,按提示到对应的目录去拷贝解锁密码(初始管理员密码),填入提示框。

2)插件安装
完成解锁之后,继续进行插件安装提示,有默认和自定义,一般用默认也就可以了,如果你对jenkins比较熟也可以自定义进行安装,只选择自己需要的插件进行安装。

3)注册新管理员
插件安装完之后需要注册一个新的管理员账号,按提示进行注册就好,注册成功之后就可以用该管理员帐户进行登录了。

4)和git服务器通信的公钥密码生成

$su root
#passwd jenkins
#exit
$su jenkins
$ssh-keygen -t rsa

生成的密钥默认存放位置jenkins home目录下的.ssh

~/.ssh

生成两个密钥id_rsa(私钥)和id_rsa.pub(公钥)
公钥需要提供给需要登录的服务器(这里是gitolite)做授权用

5)把公钥提交到gitolite服务器
把公钥改名为jenkins.pub并给gitolite的管理员让他提交到对应的key目录,我这边gitolite和jenkins安装在同一台服务器上,所以服务器地址直接是127.0.0.1,操作如下

$su zgk
$git clone git@127.0.0.1:gitolite-admin
$cp jenkins.pub gitolite-admin/keydir
$git add .
$git commit -m “add user jenkins”
$git push

添加完之后切换到jenkins账号,测试下连接是否正常,我这边提供了一个testing的测试仓库(对所有用户权限全开),如果能正常clone下来说明和git服务器的连接已经配置好了,我这边环境测试如下:

$su jenkins
$cd ~
$git clone git@127.0.0.1:testing

3.2 系统管理

http://localhost:8080/ 主界面,系统管理,可以对系统进行设置,安全配置等

image.png
1)系统设置
image.png
我这边的环境只是设置了一个系统管理员邮件地址,如果任务构建失败的话,有指定邮件通知责任人和相关人员时需要通过该邮件地址进行发送出去。
image.png
2)全局安全配置
image.png

4 创建一个自动构建的任务


1)新建
点击新建,如下图所示


image.png

2)填写任务名称并选择类型
如下图所示,一般选择自由风格的也就够用了,如果你的项目比较复杂可以使用pipeline来自定义一个任务模型,pipeline有相应的语法结构,可以编写从构建,测试,到部署的所有环节,可以按阶段,按步骤执行。


image.png
3)一般配置
进入配置界面,包含六部分,如下图圈起来的部分
image.png

其中General是一些通用的配置,可以对项目进行简要介绍
4)源码管理
我这边使用git仓库,URL使用git clone用的地址就可以,编译的分支选择你需要监测的分支(如果你的源码仓库有好多分支,每个分支都要监测的话,这一格留空就好了)配置一切正常的话是如下图所示


image.png
如果出现下图的情况
image.png
可能有下面几个原因
(1)你URL的格式不对或者对应的仓库不存在
(2)你jenkins的公钥密码没有提交到gitolite的服务器(可以参考第3部分相应配置介绍)
(3)Jenkins访问的仓库对jenkins没有开放权限(至少是读的权限,一般对应的代码仓库给jenkins开放读的权限也就够了)

5)构建触发
一般使用Poll SCM轮询源码仓库的方式,也就是说定时去检查源码仓库是否有变化有变化的就会去执行构建脚本,下面日程表代表:每两分钟去执行一次检查


image.png

日程表的语法结构和linux的cron 命令语法非常相似,稍微有点差别。
日程表主要有5个域,每个域用空格或者TAB键隔开
从左到右分别代表:“分钟 小时 天 月 周”

分钟 0–59
小时 0–23
1–31
1–12
0–7, 0 和7代表星期天

还有一些特殊的字符

6)构建环境
我这边选择在构建之前先清空工作空间


image.png

7)构建

8)构建后操作

5 创建好的项目界面说明


1)项目主界面
进入相应的项目主要界面如下


image.png

2)修改记录
如下图所示,可以观察到源码仓库提交的修改记录


image.png

3)工作空间
如下图所示,工作空间就是jenkins从git仓库下载源码到自己的构建目录的区域,可以查看对应的文件,也可以直接下载全部的文件


image.png

4)立即构建
可以手动触发项目进行构建,在你初步创建构建项目之后,进行构建测试时比较有用。
5)删除Project
可以直接删除这个项目
6)配置
可以对你的项目进行配置修改
7)构建历史
可以查看你项目过往的构建情况,如下图所示红色的表示构建失败,蓝色的表示构建成功


image.png

你可以点击对应的按钮去查看该次构建输出信息,如下图所示


image.png

6 后记


参考资料


[1] https://jenkins.io/doc/
[2] http://www.cnblogs.com/a2211009/p/4265225.html

上一篇 下一篇

猜你喜欢

热点阅读