Linux Jenkins安装(服务器架设篇)

Jenkins简介

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。我这里用通俗易懂的话就是:开发人员对项目进行开发过程,开发团队会不断的有新的代码提交,修改,合并等,这使得开发人员在开发项目的后续流程上不断地的调试,测试,软件整合集成和发布。这个过程中的步骤以往需要开发人员反复的手动处理,费时费力还容易出现不易察觉的人为错误,对于重复的劳动怎么简化甚至不用开发人员去劳神费力就是Jenkins的功能。这里我讲下持续集成:持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。Jenkins叫持续集成工具(CI)的原因也是由此而来,开发团队不断的提交代码添加或者修改功能,再使用Jenkins在每次提交代码后被开发人员发布到开发环境进行验证,并提供方便的软件分支,版本选择发布功能,方便某一个软件问题出现后很短时间内自动回退到上一个可靠版本。Jenkins讲白了就是一个工具,简化软件的发布和测试环节。

安装

环境 版本
RHEL/CentOS 7.x
Jenkins 2.138.x

目前Jenkins是有多种安装方式的:

  1. Docker方式
  2. Linux/Windows可执行软件包方式
  3. 预编译的war方式(java web软件包)
    1. Tomcat,WebLogic等web容器运行
    2. 以java jar包运行

这里我多讲几句来解释这几种方式。Docker方式是在Docker容器上进行部署的,软件隔离化做的很好,由于我没有使用Docker暂时不做比较。Linux/Windows可执行软件包是在具体的平台上可以直接安装的二进制程序,这种方式最简单也容易后续的进行自动升级但是最大的缺点是对灵活性最低而且对系统的侵入性最强(安装和卸载在系统内可能会有残留文件),我建议初学者使用不建议有一定软件部署经验的开发人员运维使用。而第三种是我比较推荐的,这种方式也非常简单,有Java web开发经验的人员可以非常简单的作为一个简单的java web项目来部署,总体来讲这个方式灵活,对系统的侵入小,属于十分推荐的一种方式,而这种方式中又有两种子方式:如果你的服务器已经有了web容器例如tomcat,你可以使用第一种子方式直接扔到容器里面就可以了,这种方式非常简单我不多讲(就是tomcat部署普通war包),它有一个小的缺点相比第二种子方式,那就是你必须服务器要有web容器吗,此外如果你有持续集成的web也在这个web容器里面验证,那么jenkins和这些被集成的容器在一起可能会有一点点的稳定性问题(理论上),你如果采取一台服务器部署俩个webt容器(例如tomcat)可以解决这个问题不过这样略显麻烦,而且一台服务器部署两个web容器容易端口冲突资源冲突,那么我就讲第二种子方式部署的优点:首先是不需要web容器(jenkins war里面已经有一个轻量的jetty)这样对服务器软件环境没什么要求,其次是部署最简单一行代码就搞定(相信我)

我这里演示的是第三种方式的第二种子方式,不过对其他几种方式粘贴上别人的文章

下面是我的安装步骤:

下载页面

这里有3种安装包:docker,linux/windows安装包和java war包:

++我们下载正式版本的war即可++

安装环境准备

安装环境为CentOS6 x86-64平台,这里我们先要安装JDK(必须)和MAVEN(非必需,Java maven项目建议安装这个)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# 普通用户下建立jenkins安装文件夹
[imuser@localhost ~]$ ls
jenkins smart zhixun
# 放入jenkins的war,MAVEN的安装包文件夹maven和maven的仓库文件夹maven_repo(非必需)
[imuser@localhost ~]$ cd jenkins/
[imuser@localhost jenkins]$ ls
apache-maven-3.5.4-bin.tar.gz jenkins.war maven maven_repo readme.md
#修改maven的仓库地址
[imuser@localhost jenkins]$ vim maven/conf/settings.xml



<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->

# 这里改成你要的maven仓库地址就可以了,比如我的路径/home/imuser/jenkins/maven_repo
<localRepository>/home/imuser/jenkins/maven_repo</localRepository>


# 修改用户环境变量添加MAVEN环境变量(JAVA的环境变量有同事设置为了全局环境变量我就不记录了)
[imuser@localhost jenkins]$ vim ~/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

#这里添加
MAVEN_HOME=/home/imuser/jenkins/maven
PATH=$PATH:$MAVEN_HOME/bin


export PATH

# 应用用户环境变量修改使maven环境变量生效
[imuser@localhost jenkins]$ source ~/.bash_profile

环境验证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 验证JAVA环境
[imuser@localhost jenkins]$ java -version
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)
# 验证MAVEN环境
[imuser@localhost jenkins]$ mvn -version
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)
Maven home: /home/imuser/jenkins/maven
Java version: 1.8.0_112, vendor: Oracle Corporation, runtime: /usr/local/java/jdk1.8.0_112/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-642.el6.x86_64", arch: "amd64", family: "unix"

# 到这里基本的Jenkins需要的环境就可以了

启动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# java一行语句启动jenkins,指定端口为8081,& 为后台启动
[imuser@localhost jenkins]$ java -jar jenkins.war --httpPort=8081 &
[1] 39478
[imuser@localhost jenkins]$ Running from: /home/imuser/jenkins/jenkins.war
webroot: $user.home/.jenkins
Oct 29, 2018 8:03:19 PM org.eclipse.jetty.util.log.Log initialized

.....

Oct 29, 2018 8:03:46 PM org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory
INFO: Bean factory for application context [org.springframework.web.context.support.StaticWebApplicationContext@26b8a4ba]: org.springframework.beans.factory.support.DefaultListableBeanFactory@3c3734f3
Oct 29, 2018 8:03:46 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@3c3734f3: defining beans [filter,legacy]; root of factory hierarchy
Oct 29, 2018 8:03:46 PM jenkins.InitReactorRunner$1 onAttained
INFO: Completed initialization
Oct 29, 2018 8:03:46 PM hudson.WebAppMain$3 run
INFO: Jenkins is fully up and running

# 出现类似上面的这些字样就表示启动了

#验证下jenkins服务,发现8081端口正在被监听,这样就没什么后续的问题了
[imuser@localhost jenkins]$ ps -ef | grep jenkins
imuser 39478 38724 21 20:03 pts/2 00:00:31 java -jar jenkins.war --httpPort=8081
imuser 39622 38724 0 20:05 pts/2 00:00:00 grep jenkins


# 这里提醒下 8081端口要被系统的防火墙开放,不然浏览器无法访问jenkins后台

访问Jenkins后台

你可以使用部署的服务器主机ip加上jenkins监听端口组成链接来访问后台:

例如我的:http://127.0.0.1:8081,直接在浏览器上访问

这里一行红色的字提示你管理员初始密码是这个文件,在服务器上直接访问这个文件里面的内容拿到密码输入页面密码框就可以了。


输入后进入下一步


这里建议我们安装建议的一些常用插件,我们直接点击蓝色方块,等待它自己安装完成


开始安装了


等待安装完成。。。。


等待安装完成。。。。

安装完了,创建第一个管理员的账号

填入信息

完成,这里蓝色高亮部分提示你浏览器访问这个地址,记住这个地址,点击保存并完成


提示安装完成


登陆

主界面

这样你的jenkins就完成安装了,访问地jenkins也在页面上给出了,浏览器直接访问就可以。

这里我还建议安装完后,手动重启下在使用Jenkins。下面是jenkins的几种常用技巧:

  • 关闭Jenkins

只需要在访问jenkins服务器的网址url地址后加上exit。例如我jenkins的地址http://127.0.0.1:8081,那么我只需要在浏览器地址栏上敲下http://127.0.0.1:8081/exit网址就能关闭jenkins服务