centos 搭建 Jenkins

Posted LiuJun2Son

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos 搭建 Jenkins相关的知识,希望对你有一定的参考价值。

1.Jenkins简介

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过**自动化的构建(拉取代码,编译,发布,自动化测试)**来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。

2.Jenkins软件下载

下载 https://pkg.jenkins.io/redhat-stable/

NameLast modifiedSize
jenkins-2.190.1-1.1.noarch.rpm2019/09/2574.4M
jenkins-2.176.4-1.1.noarch.rpm2019/09/2573.6M
jenkins-2.176.3-1.1.noarch.rpm2019/08/2873.6M
jenkins-2.176.2-1.1.noarch.rpm2019/07/1773.6M

3.Jenkins 安装

注意:在安装Jenkins 前 Linux 服务器已经安装好了 jdk-1.8 了,没有安装的要先安装 jdk 后再安装 Jenkins.

1.在存放jenkins-2.190.1-1.1.noarch.rpm 的文件夹下执行:

sudo rpm -ih jenkins-2.190.1-1.1.noarch.rpm

2.自动安装完成之后:

/usr/lib/jenkins/jenkins.war    WAR包 (jenkins官网)
/etc/sysconfig/jenkins       配置文件( 可以修改Jenkins的端口 )
/var/lib/jenkins/       默认的JENKINS_HOME目录(存放下载的插件,用户初始密码,用户信息 ,新建的任务.../var/log/jenkins/jenkins.log    Jenkins日志文件

参考文档 Linux下安装Jenkins

参看文档 window 下安装Jenkins

4.启动Jenkins

直接在linux的终端上执行:

sudo service jenkins start   // 启动Jenkins   
sudo service jenkins stop   // 关闭Jenkins 。 http://localhost:8080/exit 
sudo service jenkins reload   // 重新加载配置信息Jenkins。  http://localhost:8080/reload
sudo service jenkins restart   // 重启Jenkins。  http://localhost:8080/restart 

注意:

1.启动之后最好把 /var/lib/jenkins/hudson.model.UpdateCenter.xml中的 https 改成 http 协议,不然后面插件可能下载会失败

2.如果没有安装jdk的话启动会报错:Starting Jenkins bash: /usr/bin/java: No such file or directory

参考:https://blog.csdn.net/cai454692590/article/details/85918467

启动和关闭 Jenkins

5.输入密码

第一打开Jenkins官网需要输入密码

密码在 /var/lib/jenkins/secrets/initialAdminPassword 文件中

6.安装插件(可选)

Customize Jenkins 这一步可以选择推荐安装Install suggested plugins,安装的时间比较久,如果安装失败也没关系,安装失败了可以直接跳过。后面根据自己需要再安装对应的插件也是可以的。

以下是默认安装的插件:

Folders :这个插件允许用户创建“文件夹”组织工作。用户可以自定义分类法(如按项目类型、组织类型)。文件夹是可嵌套文件夹内和您可以定义视图。

OWASP Markup Formatter:插件有时也称为“AntiSamy标记格式化程序”或“安全html标记格式化程序”

Build Timeout : 这个插件允许您自动中止构建如果是耗时太长。 一旦超时,jenkins的行为就好像一只看不见的手已点击“中止”按钮。

Credentials Binding :允许将凭证绑定到环境变量,使用在各种各样的构建步骤。

Timestamper : 将时间戳添加到控制台输出。

Workspace Cleanup: 插件可以删除构建工作区

Ant :这个插件添加Apache Ant支持JenKins。此功能用于核心的一部分,但是詹金斯1.431,这是分裂成独立的插件。

Gradle: 这个插件添加Gradle支持詹金斯。Gradle是作为另一个工具来管理内部詹金斯(Ant或Maven一样),包括支持自动安装和提供了一个新的构建步骤来执行它的任务。

Pipeline: 一套插件让你编排自动化、简单的或复杂的管道流

GitHub Branch Source:  GitHub分支源代码插件允许您从一个或多个存储库结构GitHub用户或组织创建一个新项目。你可以: 1) 从GitHub用户或组织中所有或存储库的子集作为工作导入工作区 2)导入单个存储库的分支从GitHub用户或组织工作 

Pipeline: GitHub Groovy Libraries :Groovy 允许管道从GitHub库动态加载

Pipeline: Stage View: 当你有复杂的构建管道,是很有用的可以看到每个阶段的进展。管道阶段视图插件包括一个扩展的可视化管道建设历史的索引页面流项目,下阶段的观点。

Git :这个插件添加Git支持

Subversion :这个插件添加 SVN 支持

SSH Slaves :  提供了一种方法来启动代理通过SSH

Matrix Authorization Strategy :在使用这个插件詹金斯实现细粒度的访问控制。 矩阵授权允许配置权限的最低水平,如开始新构建,配置项目,单独或删除他们。

PAM Authentication :增加了Unix可插入的身份验证模块(PAM)支持詹金斯。

LDAP:这个插件提供了另一种方法使用LDAP身份验证的用户。它可以用于LDAP服务器像Active Directory或OpenLDAP等等。支持配置可以找到这些线以下。

Email Extension : 这个插件添加 Email 支持

Mailer :这个插件允许您配置构建结果邮件通知。这是一个跑火的原始核心基础邮件组件

Localization: Chinese (Simplified): 简体中文本地化詹金斯核心和插件。

如果直接跳过这一步,什么插件都不安装就要自己手动安装(不是很建议)

7.离线安装Jenkins中的插件

也可以离线安装插件:https://plugins.jenkins.io/

离线安装插件 :https://www.cnblogs.com/jimmy-xuli/p/9020825.html

第一步:在https://plugins.jenkins.io/这里搜索对应的插件,然后在插件详情的右上角点击get past version来下载 xxxx.hpi 的插件文件

第二步:登录Jenkins官网,在 <系统管理> 下的 <插件管理>中的<高级>选项中的<上传插件>,选中下载好的xxx.hpi文件后点击上传即可。

第三步:如果安装失败后重新多次安装就可以了或者安装多个插件并且之间有依赖时要注意安装顺序。安装完后重启JenKins

8.在线安装Jenkins中的插件

登录Jenkins官网,在<插件管理>中心的<可选插件> 搜索对应的插件来安装。

1.NodeJS 插件安装和使用(搭建Node构建环境)

第一步:安装NodeJS插件( NodeJS插件是给詹金斯提供了NodeJS & npm集成包)

第二步:linux服务安装Node环境

第三步:在<全局工具配置> 中配置全局的Node环境 , 例如:/usr/nodejs 安装路劲,不需要 /bin

第四步:在<新建任务>的 <构建环境> 选择 Provide Node & npm bin/ folder to PATH

2.Publish Over SSH 插件安装和使用(推送代码到远程服务器)

第一步:安装Publish Over SSH插件

第二步: 点击- 系统管理-系统设置-拉到最下面的Publish over SSH 选项 - 配置SSH Servers

配置SSH Servers:

	Passphrase: 密码(目标机器的密码, 必填)

	Path to key:key文件(私钥)的路径

	SSH Server Name: 标识的名字(随便你取什么)

	Hostname: 需要连接ssh的主机名或ip地址,此处填写应用服务器IP(建议ip), 必填

	Username: 用户名 , 必填

	Remote Directory: 远程发布目录(自己选择比如  /usr/local/xxx/webapps/  或者  /usr/local/webserver/nginx  等等 )  , 必填

第三步:在<新建任务>的 <构建后操作> 选择 Send build aitifacts over SSH

   	Name		: 这里是自定义的ssh远程服务器,如果有多台,点击add post-build step 继续添加
    Source files	: 源文件地址,相对地址 比如这个:/var/lib/jenkins/workspace/ZnflWeb/ 。直接写成 dist/** 就相当于绝对路径是:/var/lib/jenkins/workspace/ZnflWeb/dist/**
    Remove prefix	: 这里写 dist/ 指的是忽略前面的 dist/  。拷贝到远程服务器的文件直接就是dist文件夹下所有内容(拷贝时就不会包含dist目录)
    Remote directory    : 远程服务器用来保存文件(刚才dist里的所有文件)的目录。直接写成 ZnflWeb 就相当于远程服务器的绝对路径是: /usr/local/webserver/nginx /ZnflWeb/ 这里是存放dist里的所有文件。(这个文件夹不存在默认会自动新建,路基是相对于上面配的Remote Directory)
    Exec command	: 这里直接写 bash 脚本名称 xx.sh 或者执行命令,也是远程服务器的脚本

9.卸载 Jenkins

1.rpm 卸载

rpm -e jenkins

rpm -ql jenkins 检查是否卸载成功

2、彻底删除残留文件:

find / -iname jenkins | xargs -n 1000 rm -rf

以上是关于centos 搭建 Jenkins的主要内容,如果未能解决你的问题,请参考以下文章

CentOS 7 搭建Jenkins+JDK+Git+Maven+Gradle持续集成系统

CentOS7.2 搭建 Jenkins2.107.3

centos+Jenkins+maven搭建持续集成

Jenkins + svn + maven 构建持续集成环境搭建

centos从零开始搭建Jenkins容器

jenkins 集成工具搭建