Jenkins搭建和使用

原文链接: https://my.oschina.net/zyqjustin/blog/707878

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) 
首次启动会提示很多插件已经过时,需要更新,建议升级到最新版本。 

Jenkins搭建和使用_第1张图片

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

165735_wIKV_1444395.png

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

安全设置

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

Jenkins搭建和使用_第2张图片

进入Configure Global Security界面: 

Jenkins搭建和使用_第3张图片

Jenkins搭建和使用_第4张图片

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

Jenkins搭建和使用_第5张图片

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

Jenkins搭建和使用_第6张图片

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

系统配置

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

Jenkins搭建和使用_第7张图片

首先是jdk

Jenkins搭建和使用_第8张图片

git 

Jenkins搭建和使用_第9张图片

ant 

Jenkins搭建和使用_第10张图片

maven

Jenkins搭建和使用_第11张图片

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

Jenkins搭建和使用_第12张图片

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

Jenkins搭建和使用_第13张图片

Jenkins搭建和使用_第14张图片

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

使用教程

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

Jenkins搭建和使用_第15张图片

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

Jenkins搭建和使用_第16张图片

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

Jenkins搭建和使用_第17张图片

Jenkins搭建和使用_第18张图片

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

Jenkins搭建和使用_第19张图片

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

Jenkins搭建和使用_第20张图片

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

Jenkins搭建和使用_第21张图片

Build success。

远程分发

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

Jenkins搭建和使用_第22张图片

参考下面的参数填写 

Jenkins搭建和使用_第23张图片

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

Jenkins搭建和使用_第24张图片

用户权限设置

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

1.安装Role-based Authorization Strategy 

Jenkins搭建和使用_第25张图片

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

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

Jenkins搭建和使用_第26张图片

Jenkins搭建和使用_第27张图片

3.管理分组

“Manage Jenkins” → “Manage and Assign Roles” 

Jenkins搭建和使用_第28张图片

点击“Manage Roles”进入界面 

Jenkins搭建和使用_第29张图片

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

Jenkins搭建和使用_第30张图片

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

Jenkins搭建和使用_第31张图片

创建用户

Jenkins搭建和使用_第32张图片

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

Jenkins搭建和使用_第33张图片

分配角色

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

Jenkins搭建和使用_第34张图片

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

Jenkins搭建和使用_第35张图片

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

Jenkins搭建和使用_第36张图片

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

Jenkins搭建和使用_第37张图片

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

Jenkins搭建和使用_第38张图片

点击“+”,创建想要的view 
Include a global view:显示所有的内容 
List view:可以通过类似正则表达式配置自己想要显示的Jobs 
My view:自动显示用户有权限访问的Jobs 
Jenkins搭建和使用_第39张图片

这里选择My view 

Jenkins搭建和使用_第40张图片

 

 

转载于:https://my.oschina.net/zyqjustin/blog/707878

你可能感兴趣的:(Jenkins搭建和使用)