Jenkins搭建和使用

小鱼儿 2022-05-28 04:35 277阅读 0赞

Jenkins

Jenkins是一个广泛用于持续构建的可视化web工具,就是各种项目的的“自动化”编译、打包、分发部署等等。Jenkins可以支持多种语言(比如:java、c#、php等等),也兼容ant、maven、gradle等多种第三方构建工具,同时跟git、svn无缝集成,也支持直接与源代码托管网站(比如github、bitbucket)直接集成。

安装部署

使用Centos 7系统,在安装Jenkins之前,需要安装相应的软件。

  1. 安装JDK

    tar -zxf jdk-8u91-linux-x64.tar.gz -C /home/mmtrix/local/
    ln -s jdk1.8.0_91 java

  2. 安装maven(其它的构建工具也可以,取决于项目使用什么)

    tar -zxf apache-maven-3.0.5-bin.zip -C /home/mmtrix/local/
    ln -s apache-maven-3.0.5 maven

  3. 安装ant

    tar -zxf apache-ant-1.9.7-bin.tar.gz -C /home/mmtrix/local/
    ln -s apache-ant-1.9.7 ant

  4. 安装git(其它的代码管理工具也可以,取决于项目使用什么)

  5. 安装启动Jenkins

    java -jar jenkins.war

在启动过程中,会自动将war包解压到~/.jenkins目录下,并生成一些目录和配置文件。启动参数也可自行调整。

更新和下载插件

启动完成后,打开浏览器http://localhost:8080/ (如果不是安装在本机,应该localhost换成服务器对应的ip)
首次启动会提示很多插件已经过时,需要更新,建议升级到最新版本。

165647_Njeb_1444395.png

同时建议安装以下插件,方便支持git项目以及向远程机器上传文件及执行命令。

165735_wIKV_1444395.png

插件升级之后重启jenkins以便其生效。

安全设置

默认情况下,jenkins允许匿名用户做任何事情,这意味着谁都可以使用jenkins进行发布,这显然不够安全,jenkins支持多种安全认证机制,下面演示最传统的用户名/密码模式如何设置:

165933_iubM_1444395.png

进入Configure Global Security界面:

165958_pScP_1444395.png

170017_0C9f_1444395.png

参考上图,采用jenkins内置的用户名、密码认证机制,同时允许用户注册,匿名用户拥有管理权(首次配置,建议运行匿名用户有管理权限,以避免操作错误后,无法正常进入jenkins管理界面,等其他用户权限设置好之后,再去掉用户的管理权)
保存好之后,jenkins页面右上角有一个sign up注册链接,点击注册用户:

170046_BbHi_1444395.png

注册好之后再进入安全设置界面,看到用户列表多了一个mmtrix用户,并拥有管理权限,使用mmtrix用户登录,成功之后去掉匿名用户管理权限,一般也去掉用户注册的勾选(实际应用中,一般都是提前建好所有用户名),保存好,在访问jenkins:

170126_7vNo_1444395.png

这样就只有登录用户才能使用了。

系统配置

在正式部署项目前,还有几个关键的参数需要设置。
先进入系统设置界面

171646_pfUT_1444395.png

首先是jdk

171705_5djK_1444395.png

git

171720_WhJe_1444395.png

ant

171738_CVcb_1444395.png

maven

171754_vvuZ_1444395.png

如果部署过程中,还需要运行shell脚本,以及通过scp向远程机器上传文件,则需要配置下面的:

171811_Py0m_1444395.png

SCP site解释:
Hostname: 远程服务器的主机名
Port: SSH使用端口号
Root Repository Path: SCP拷贝时路径的根目录
User Name: 用户名 \ Password、PassPhrase:密码
Keyfile:本地ssh密钥的路径
还有一个强大的publish over ssh,不仅可以向远程服务器上传文件,还能执行远程服务器上的shell脚本

171840_v4DN_1444395.png

171850_KUzl_1444395.png

跟SCP的参数设置相似,不过多了一个Test Configuration的按钮,参数配置正确,点击该按钮,会尝试连接远程服务器,成功会显示success。

使用教程

以在github上的一个测试项目maven-test作为演示

171938_3c92_1444395.png

点击OK之后,最上面部分,除了Project name,其他不用填写

171954_YmvI_1444395.png

源代码管理部分,选择的是一个git项目,所以选择Git,Repository URL填写项目的git地址,github需要密码才能访问,所以Credentials这里要选择相应的用户名、密码,git获取源代码的分支名称,一般为master,也可以改成想要的分支。

172024_OK9a_1444395.png

172034_5fRH_1444395.png

Credentials部分下拉框首次进来是空的,点击右侧Add,进行添加

172051_vmbu_1444395.png

Build部分,本项目是一个maven项目,选择Invoke top-level Maven targets

172105_4bfj_1444395.png

保存,创建完成,可以测试一下。

172127_CXai_1444395.png

Build success。

远程分发

很多项目需要将编译成功的j文件发送到远程服务器上,利用scp插件,在Add post-build Action中选择Publis artifacts to SCP Repository

172214_ILOr_1444395.png

参考下面的参数填写

172228_C5bu_1444395.png

Source:分发的文件
Destination:目的路径,相对前面配置的远程服务器的根目录
配置好了之后,再次build就可以了

172245_RoC5_1444395.png

用户权限设置

实现不同用户显示对应视图views中不同的jobs,使用Role-based Authorization Strategy插件。

1.安装Role-based Authorization Strategy

172330_k5xM_1444395.png

安装成功之后,重启jenkins使其生效。

2.“Manage Jenkins” → “Configure Global Security” → “Role-Based Strategy”

172407_TdSC_1444395.png

172415_22V2_1444395.png

3.管理分组

“Manage Jenkins” → “Manage and Assign Roles”

172448_OngB_1444395.png

点击“Manage Roles”进入界面

172519_doxr_1444395.png

创建两个全局的用户组:job-read和job-create
job-read加Overall和Job的Read权限,job-create只加Job的create权限

172536_oJeo_1444395.png

创建两个项目用户组:deploy和QA
project roles创建的时候Pattern正则表达式与脚本里不一样,比如过滤test开头的项目,要写成test.*而不是test*

172552_x8d3_1444395.png

创建用户

172619_itYo_1444395.png

点击“Create User”,然后创建用户,一共有3个用户:mmtrix、liufei、test

172635_7CTq_1444395.png

分配角色

“Manage and Assign Roles”→“Assign Roles”设置
global roles,给mmtrix分配管理员的组,匿名用户分配到job_read组和job_create组

172700_qqNV_1444395.png

project roles,给liufei分配到deploy组,将test分配到QA组

172716_oJuk_1444395.png

退出用户登录,匿名用户可以查看现有的Job和新建Job,但是没办法build

172730_NWD8_1444395.png

采用liufei登录,在All view中可以查看所有的Job,但是能build只能符合maven开头的Job

172745_jI0c_1444395.png

可以编辑“My views”,让其显示特定的Jobs

172801_WPET_1444395.png

点击“+”,创建想要的view
Include a global view:显示所有的内容
List view:可以通过类似正则表达式配置自己想要显示的Jobs
My view:自动显示用户有权限访问的Jobs
172816_JPle_1444395.png

这里选择My view

172832_HjfT_1444395.png

转自:https://my.oschina.net/zyqjustin/blog/707878

发表评论

表情:
评论列表 (有 0 条评论,277人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Jenkins使用

    Jenkins Jenkins是一个广泛用于持续构建的可视化web工具,就是各种项目的的“自动化”编译、打包、分发部署等等。Jenkins可以支持多种语言(比如:java

    相关 Jenkins

    1.Jenkins 介绍   自动化运维工具:saltstack、jenkins、等。因为他们的目标一样,为了我们的软件、构建、测试、发布更加的敏捷、频繁、可靠