1987WEB视界-分享互联网热点话题和事件

您现在的位置是:首页 > WEB开发 > 正文

WEB开发

一文详解Jenkins的安装与配置,让你成为轻松成为Jenkins管理员。

1987web2023-10-06WEB开发50

Jenkins是一个基于Java开发的开源的一种持续集成工具,主要用于环境部署,监控重复性的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。要想使用它,你就必须的先安装,接下来我们就介绍下Jenkins是如何安装 。

一.Jenkins安装

安装步骤如下:

  1. 下载Java安装包,因为Jenkins是基于Java开发的,所以必须要先安装Java 。
  2. 进入官网下载Jenkins安装包
  3. 在服务器上进行安装及启动
  4. 启动服务,进行下载插件等 。

接下来就按照上面的步骤进行安装操作 。

1.1 Java安装与配置

  1. 进入Java官网:https://oracle.com/java/technologies/javase/javase-jdk8-downloads.html,找到对应安装包进行下载,因为(我这里以Linux为例)
  2. 将安装包通过xshell上传到Linux服务器上 。

3. 将安装包解压到指定目录,这里的指定目录根据自己需求确定 。比如我这里以解压到/opt下为例.

tar -xvzf jdk-8u271-linux-x64.tar.gz -C /opt

4. 设置Java环境变量. 编辑/etc/profile文件 ,在文件最后加入三行代码 。vi /etc/profile

在/etc/profile 插入以下三行
export JAVA_HOME=/opt/jdk1.8     根据自己路径设定
export PATH=.:$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

设置完成以后,保存退出文件,并输入如下命令使设置生效 。source /etc/profile

5. 验证安装成功 。在命令行中输入java -version,若出现对应版本,即证明安装成功 。

java-version

1.2.Jenkins安装

  1. 进入官网:https://jenkins.io/zh/,点击下载按钮
  2. 在进入的界面有很多安装包,直接选择左侧的war包进行下载。

3. 将Jenkins.war包上传到服务器上,执行前需要为Jenkins.war赋值可执行权限.

执行下面命令前,需要提前进入该目录
chmod +x jenkins.war

4. 进行解压并启动Jenkins服务 。

java –jar jenkins.war --httpPort=8888
备注:若需要指定具体端口,需要加--httpPort参数,若不指定端口,该参数可以省略。

5. 通过浏览器访问:http://ip:port,其中ip是你的服务器ip地址,port是你设置Jenkins的端口 。若启动时没加端口,默认端口为80。

6. 第一次访问后,需要输入解锁密码。

7. 选择安装推荐的插件,进行下一步 。

备注:这个插件安装可能需要一些时间 。

8. 创建一个管理员,输入管理员信息 。

9. 安装完毕,进入下面的界面 ,界面显示Jenkins URL地址 。

10.进入Jenkins的主界面 。

二.Jenkins概况

在上面我们介绍过,Jenkins可以实现自动编译、打包、分发部署等工作,从而帮我们从繁琐的工作中解脱出来 ,专注于更为重要的业务逻辑实现上。

目前来说,使用Jenkins最为广泛的两种模式就是持续集成(CI)和持续交付(CD).

  • 持续集成:工程师可以频繁的将它们的代码部署到主干上,并进行自动化测试 。
  • 持续交付:将测试过的代码自动部署到线上环境 。

2.1 持续集成

首先从这个概念可以分开来说,持续很好理解,这里就不再赘述 。这里主要谈集成 。集成其实就是一系列的动作组合,最终目的是将代码从开发获取代码到自动部署再到自动进行测试的系列过程 。我们将这里的动作进行分解为:

  1. 代码提交 ,开发人员持续的频繁的提交他们的代码到GitLab上。
  2. 拉取代码,从GitLab服务器上拉取代码到Jenkins服务器上 。
  3. 编译代码,在Jenkins服务器上进行代码编译。
  4. 打包,在Jenkins服务器上将代码进行打包 。
  5. 分发,将打包后的应用分发到对应的测试环境中。
  6. 启动服务,将应用程序部署后进行启动服务 。
  7. 自动测试,通过自动化测试脚本进行测试自动测试
  8. 邮件发送,将测试结果转发给相关人员 。

2.2 持续交付

持续交付是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的类生产环境(准生产环境)中。在这里我们同样将这个过程进行分解为如下步骤:

  1. 部署到测试环境,具体步骤见持续集成的步骤 。
  2. 运行验收测试用例,所有测试用例执行通过 。
  3. 若验收用例执行通过,将测试代码部署到准生产环境
  4. 运行准生产上的测试用例。
  5. 若准生产的测试用例通过,部署到生成环境 。

这里需要注意的是,不同的环境会有不同的测试用例和数据,越接近用户环境,使用的数据越贴近于真实用户数据

2.3 目录详情

为了能更详细的了解Jenkins,我们有必要了解下Jenkins的工作目录 ,这里Jenkins.war包进行说明,当我们运行Jenkins.war包后,就会自动将所有文件都解压到用户目录下,有个叫.jenkins的文件夹。

三.Jenkins配置

Jenkins配置主要是针对创建构建任务前做的一些基本配置,这些配置有些是必须的,有些是可以帮我们提高效率的,总之都是Jenkins管理员都要会的一些操作,如下配置都并非必设项,也没有固定顺序 ,完全根据个人需求来设置即可。

3.1 用户管理(创建用户)

当一个团队在使用Jenkins时,一般都会为不同角色创建不同账号,从而给为每个账号设置不同权限 ,这样就能相对安全的管理多个用户 。那么接下来我们就为Jenkins创建一个账号 。

创建步骤如下:

  1. 点击系统管理-管理用户节点 。

2. 进入的页面中点击新建用户 ,输入对应的新用户信息 。

3. 新建后可以查看用户列表 。

3.2 插件管理(添加插件)

很多时候,使用Jenkins时需要自己安装一些插件,以满足工作需求 。就比如若要在Jenkins界面上查看HTML格式的报告 ,这个时候你就需要安装一个名为HTML Publisher的插件 。具体安装什么插件,插件叫什么名字,这个需要提前知道 。

安装步骤如下:

  1. 点击系统管理-插件管理节点 。

2. 进入的页面中,切换到可选插件 ,在上面搜索框输入你要搜索的插件,比如我这里以HTML Publisher为例 。

3. 选中插件前的复选框,点击Install without restart .

4. 等待插件安装,安装后可重启Jenkins即生效 。

说明:同样其它插件安装也是如此,需要你提前知道插件的名字 。

3.3 视图管理(添加视图)

视图可以对创建的任务进行分组显示, 分组的维度可以由管理员确定 ,此功能主要用户提高查询效率 。比如我这里以角色来进行分组 ,分为开发,测试,线上 。

具体操作步骤如下:

  1. 点击新建视图,输入视图名称 ,选择列表视图 。

2. 进入新设置页,直接点击保存即可 。

3. 添加视图后,我们后续新建的Job就会按视图进行分组管理。具体如下:

3.4 用户权限配置

当团队都在一个Jenkins时,用户的分组管理是非常有必要的 ,比如按照用户进行设置权限,不同的用户只能操作对应的视图或者只能进行相应的操作 。这样就会给多不必要的麻烦 。

具体操作步骤如下:

  1. 点击Manager Jenkins-Configure Gloabl Security

2.选择授权策略下的安全矩阵,点击Add user or group... ,将已存在的用户添加进来 。

3.根据上面的不同类型和人员进行矩阵选择 。

这样不同的人员登录Jenkins后,就会只能在权限范围内的功能可以操作,其它功能都是无法操作的 。

3.5 控制用户操作不同视图

虽然在上面我们已经介绍,可以为不同用户添加不同功能的操作权限 ,但有时候我们的Jenkins会有不同部门一起使用,比如开发部门,测试部分,运维部门等 。那么我们就会建几个不同的视图,每个角色只能在对应的视图下进行操作。按照上面的配置肯定是无法满足需求的,接下来我们就实现下这种需求 。

具体操作步骤如下:

  1. 下载插件:role-strategy ,下载地址:https://updates.jenkins-ci.org/download/plugins/role-strategy/,进入下载列表页可以选择最后一个版本进行下载。
  2. 回到Jenkins中,点击Manager Jenkins-Manager Plugins - 高级 。在上传插件中选择本地已下载的插件进行上传 。

3. 安装完成后,重启Jenkins

4. 选择Manager Jenkins-Configure Global Security-Role-Based Strategy 。

5.选择Manager Jenkins-Manage and Assign Roles。

6. 往里面添加不同角色,勾选上Overall中的Read,若向看其他视图中的任务,也可以在Job上勾选上可读 。

7. 接下来就是在Item roles中添加不同的角色,然后为每个角色中匹配对应的关键字 。如我创建test账号,只允许下面展示以test开头的任务,那么就在Pattern中输入test.* 。这样在这个视图下就会只展示test开始的任务。

8. 接下来进行分配角色,同样是在Manage and Assign Roles下面点击Assign Roles.

9. 设置Global roles 和Item roles中的角色账号 ,最后点击保存。

10.使用其中一个账号登录进去查看,查看任务的分类显示 。

有时候也有这样的需求,比如test用户只能看test视图,其它的视图也不允许看,该怎么弄呢 ?其实就是在上面的权限控制中将任务中的查看权限取消掉就可以了,最后登录进来就变成了这样的。

3.6 全局配置工具

全局配置工具主要是对一些常用的工具进行配置,这些常用工具包括Maven、JDK、Git、Grade、Ant。你如果没有为这些工具配置环境变量,这时如果在Jenkins里执行这些命令就会报错。所以,为了避免出错,可以为你所使用的工具进行配置。

3.6.1 配置Maven

  1. 下载Maven,将Maven放在一个目录下(以Windows为例)
  2. 在Jenkins中点击Manager Jenkins - Global Tool Configuration 进入。
  3. 配置Maven settings.xml文件 .

4. 将滚动条拉倒底部,选在Maven安装,将Install automatically前的复选框取消 。

5. 配置Maven的环境变量 ,然后点击保存。具体如下:

3.6.2 配置JDK

  1. 下载并安装JDK。
  2. 点击Manager Jenkins - Global Tool Configuration 进入。
  3. 滚动JDK配置界面,配置JDK的安装路径,点击保存。

3.6.3 配置git

  1. 下载并安装git。
  2. 点击Manager Jenkins - Global Tool Configuration 进入。
  3. 滚动git配置界面,配置git的安装路径,点击保存。

3.6.4 配置Gradle

  1. 下载并安装Gradle。
  2. 点击Manager Jenkins - Global Tool Configuration 进入。
  3. 滚动Gradle配置界面,配置Gradle的安装路径,点击保存。

3.6.5 配置Ant

  1. 下载并安装Ant。
  2. 点击Manager Jenkins - Global Tool Configuration 进入。
  3. 滚动Ant配置界面,配置Ant的安装路径,点击保存。

3.7 系统配置

3.7.1 配置环境变量

有时候,在控制台会输出的日志中会出现乱码,多是因为编码问题导致的,所以,我们需要通过配置一些环境变量,使其使用的编码一致。这样就可以避免这个问题 。具体如设置如下:

  1. 点击Manage Jenkins(系统管理) - Configure System(系统设置)
  2. 切换到全局属性,复选框选择Environment variables(环境变量)。添加两组键值对,分别是:
JAVA_TOOL_OPTIONS=Dfile.encoding=UTF8
LANG=zh_CN.UTF-8

3. 重新启动Jenkins 。

3.7.2 配置邮件通知

在Jenkins构建完成后,经常会通过邮件将构建结果发给团队成员,那么,如何在Jenkins中设置邮件通知呢 ? 同样需要在系统设置中配置如下几个参数 ,具体如下:

  1. 点击Manage Jenkins(系统管理) - Configure System(系统设置)
  2. 切换到Jenkins Location ,配置系统管理员邮件地址,备注:这个邮件地址相当于后续的邮件发送者 。

3. 接下来配置Extended E-mail Notification.

4. 继续切换到邮件通知,继续配置相关信息 。

5. 根据上一步的说明,我们要配置邮箱通知,需要配置登录邮箱和授权码,接下来说明如何配置授权码 。(以http://163.com),先登录163邮箱。

6. 点击设置,然后再点击POP3/SMTP/IMAP .

7. 选择开启服务POP3/SMTP服务 ,如图所示 。

8. 以上配置成功后,接下来的步骤就是在Job中配置‘构建后操作’,选择Editable Email Notification.

9. 配置内容参数 。

10. 选择发送者列表 。

11. 如果觉得发送到邮件中的内容格式不是很好看,也可以对邮件正文设置模板,设置邮件模板同时是在系统设置中,找到Default Content 。在里面添加你自己定义好的模板即可 。以下为参考示例

<html><head><metacharset="UTF-8"><title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志title>head><bodyleftmargin="8"marginwidth="0"topmargin="8"marginheight="4"offset="0"><div><h2>项目信息h2><ul><li>项目名称:${PROJECT_NAME}li><li>详细测试报告:<ahref="${PROJECT_URL}HTML_20Report/">${PROJECT_URL}HTML_20Report/a>li><li>触发原因:${CAUSE}li><li>项目Url:<ahref="${PROJECT_URL}">${PROJECT_URL}a>li>ul><hr/><h2>构建日志h2><div>${JELLY_SCRIPT,template="html"}div><hr/>div>body>html>

3.8凭据管理

凭据(credentials)是访问其他系统的认证信息,可以是账号/密码、SSH密钥、加密文件等,Jenkins可以通过设置的凭据与其它第三方应用进行认证,在可信与可控的范围内,完成第三方交互。

以下就是添加凭据的具体操作步骤:

  1. 点击Manage Jenkins(系统管理) - Manage Credentials(凭据管理)

2. 选择Stores scoped to Jenkins,点击Jenkins 。进入后,再点击全局凭据 。

3. 点击添加凭据,弹出的界面输入具体主机信息 。

4. 添加后就可在凭据列表中查看到,具体如下:

添加后的凭据就可以在Job中或者作为代理主机进行使用了 。

3.9 节点管理

Jenkins支持分布式构建,可以让一套代码在不同的代理机上运行。最大的好处就是避免多任务运行时出现等待 。

这里代理其实就是节点,如果你想要添加一个节点,就可以按照如下操作进行:

  1. 点击Manage Jenkins(系统管理) - Manage Nodes and Clouds(节点管理)

2. 点击新建节点,输入节点对应的名称,选择Permanent Agent,点击确定。

3. 进入节点配置详情,将其它信息配置完成 。

4. 添加成功后,会在列表中出现一个节点,点击此节点 。

5. 点击启动代理,Jenkins就会自动连接上代理机后将代理程序拷贝该主机上,并自动启动此服务 。这样代理机就会跟Master主机建立了连接 。

6. 启动过程中可以看到启动日志,启动成功后会显示代理机的主机资源信息。

初次启动时,可能会报如下错,不必理会,

Jenkins安装配置之war包启动

1、war形式启动Jenkins