Jenkins使用经验谈5(用户的登录与权限设定等)

[b][size=large]用任务列表归类各个Job[/size][/b]

当Job太多时,我们需要用任务列表进行一下分类管理,分类可以以开发团队依据,也可以以项目为依据,这需要一开始创建Job时做好规划,然后在Job的命名上埋下伏笔。比如我个人喜欢以项目作为依据,我们的Job的命名规则是“项目前缀_一些说明-Job类型”,例如:“project1_javaAntSample-auto”(project1项目用Ant构建的代码的健康检查类型Job)。
分类Job很容易,在首页上点击列表上的“+”


[img]http://dl2.iteye.com/upload/attachment/0090/5237/8fba6723-5f5c-33a9-95f0-c1447743108e.png[/img]


[img]http://dl2.iteye.com/upload/attachment/0090/5239/f464732d-10f1-31e6-b600-db3299ffcf19.png[/img]

我们设置只列出没有被禁止的Job,并且用正则表达式“^project1_.*$”过滤Job。


[img]http://dl2.iteye.com/upload/attachment/0090/5241/0f8ca1c0-de4f-38b5-a737-cb6aab4ae5d2.png[/img]


[img]http://dl2.iteye.com/upload/attachment/0090/5243/96fbacdc-6b7c-35f2-bbf6-1d917c8a46d2.png[/img]

[b][size=large]用户登录[/size][/b]

在做这些实验前,最好先停止Jekins并将我们的数据备份,因为这里面一旦设置错误或者遇到bug会非常麻烦。

[code="java"]
# cd /jenkins/
# service jenkins stop
# cp -a jenkins-home/ jenkins-home-bak
# service jenkins start

[/code]

[b][size=large]使用专有用户数据库进行身份验证[/size][/b]

在Jenkins首页上选择“系统管理”→“Configure Global Security”,然后选择“启用安全”选项。在“访问控制”的“安全域”这一部分我们可以配置用户使用“Jenkins专有用户数据库”,这也是我们常用的选项。

[b][size=large]使用LDAP进行身份验证[/size][/b]

首选升级一下LDAP的插件。


[img]http://dl2.iteye.com/upload/attachment/0090/5245/4645f380-3669-3c81-b153-ed4f11fe7662.png[/img]

在Jenkins首页上选择“系统管理”→“Configure Global Security”,然后选择“启用安全”选项。在“访问控制”的“安全域”这一部分我们选项“LDAP”,希望通过绑定公司域账户的LDAP服务来进行身份验证工作,我这里的设置如下。


[img]http://dl2.iteye.com/upload/attachment/0090/5271/c778f880-1fbc-346f-abe8-3a114bfd9886.png[/img]


[b][size=large]管理用户信息[/size][/b]

设置了上面的身份认证方式后,在Jenkins首页上就会有“查看用户”的入口,点击每个用户进入后可以设置用户信息,重置密码(如果是通过Jenkins专有用户数据库进行身份验证的话),这里的用户不光有注册登录的用户,也会自动从代码的提交历史中抓取用户信息,只不过如果不是设置为LDAP身份验证,这些用户无法登录。


[img]http://dl2.iteye.com/upload/attachment/0090/5249/7d4316a3-a8af-346a-9231-16477e2fa056.png[/img]


[img]http://dl2.iteye.com/upload/attachment/0090/5251/be1f6712-f251-3428-a522-0a42aaeef22a.png[/img]


[img]http://dl2.iteye.com/upload/attachment/0090/5253/df0d4a06-9c6a-3206-9a4c-3171735f61b7.png[/img]


具体的设置大家自己摸索吧,要注意安装某些插件后这里会增加个人的设置选项,比如安装了Perforce代码插件,这里会增加设置 Perforce 的 User ID选项。


[img]http://dl2.iteye.com/upload/attachment/0090/5255/cdabaf3d-4e09-3c81-b705-2d7c2f1469db.png[/img]

通过Jenkins首页的“查看用户”是无法手动新增用户的,我们可以在“系统管理”页面中找到“管理用户”,在这里可以手动新建用户。


[img]http://dl2.iteye.com/upload/attachment/0090/5259/ca69aea1-2083-38cc-ae93-0f97e183bc64.png[/img]

[b][size=large]权限设置[/size][/b]

刚刚设置了用户信息,现在我们设置一下权限,这里如果想简单设置,就选择“登录用户可以做任何事”基本已经够用了。


[img]http://dl2.iteye.com/upload/attachment/0090/5261/f6660b91-bfb9-39cc-a5ed-be89f5fc3c6f.png[/img]

如果想更细粒度的授权,我们要通过“安全矩阵”和“项目矩阵授权策略”这两部分。
安全矩阵其实并不负责,点击最右边的问号,里面说明的很详细。


[img]http://dl2.iteye.com/upload/attachment/0090/5263/e8eff2f4-23bf-3310-8d70-1de72a75bd05.png[/img]

我们试试新增加的“项目矩阵授权策略”,这一部分的设置和“安全矩阵”基本是一样的。


[img]http://dl2.iteye.com/upload/attachment/0090/5265/69184e01-af83-3663-83fd-5ec5df30f206.png[/img]

现在修改Job的属性,看到了“启用项目安全”选项,我们可以添加一个用户“zhangjing”有启动构建权限但没有修改Job配置的权限。


[img]http://dl2.iteye.com/upload/attachment/0090/5267/ccbaf7a8-58b9-3861-8290-9f7ed4fa4597.png[/img]

现在我们退出登录,然后访问 http://ci.abc.com/jenkins 发现跳转到登录页面,这就是上面设置的因为匿名用户没有任何权限。
现在以 jiangxu 用户登录,发现任何功能都可以使用。
以 weiyl 用户登录,看不到任何Job。
以zhangjing 用户登录,只能看到被授权的Job,可以启动但不能修改Job的配置。

[b][size=large]插件开发[/size][/b]

插件开发我也是刚刚接触,简单分享一下经验。
Jenkins插件开发需要使用Maven方式构建Java程序,Jenkins的Maven仓库不在公共仓库中,我曾经尝试把它添加到私服Nexus中结果有部分项目有问题。后来发现可以这样做:修改 settings.xml 文件,在 mirrors 部分除了添加你本地的私服Nexus外,再添加 Jenkins 的仓库镜像。


……
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://nexus.vow.abc.com/nexus/content/groups/public</url>
</mirror>
<mirror>
<id>repo.jenkins-ci.org</id>
<url>http://repo.jenkins-ci.org/public/</url>
<mirrorOf>repo.jenkins-ci.org</mirrorOf>
</mirror>
</mirrors>
……


以现有模版创建插件通过下面命令实现,其中 -U 表示 Maven 更新所有相关插件。然后根据提示输入必要信息就可以了。

mvn -U org.jenkins-ci.tools:maven-hpi-plugin:create


第一次构建用 mvn package 命令,以后可以用 mvn install,构建后的文件扩展名是 phi ,可以直接安装到你的Jenkins系统里。
假如使用 eclipse 开发插件时遇到和IDE环境相关问题,可以参考 https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+plugin+development+with+Eclipse
在 Windows 下调试插件不需要安装Jenkins服务器,通过下面命令就可以。然后在浏览器打开 http://localhost:8080/jenkins/

set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=n
mvn hpi:run


如果想指定端口

mvn hpi:run -Djetty.port=8090


如果你构建了一个自己打过补丁的插件,部署流程有一点不同,因为jenkins会自己管理插件。部署一个自定义的内核插件步骤:

[list]
[*]停止jenkins
[*]拷贝hpi文件到 $JENKINS_HOME/plugins
[*]移除之前的扩展插件目录
[*]创建一个空的叫 <plugin>.phi.pinned 文件,例如:maven-plugin.hpi.pinned
[*]重启jenkins
[/list]

[b][size=large]总结[/size][/b]

以上就是我在使用Jenkins积累的一些经验。如果使用Jenkins中发现问题,一般可以通过这么几个途径来解决:

[list]
[*]从Jenkins的报错信息、日志、以及操作系统日志里定位问题。
[*]在官方论坛新闻组里找答案
[*]在google上搜一下(发现很多问题的答案都是在 http://stackoverflow.com/ 这里找到的)
[*]签出源代码读一下
[/list]

总的来说,使用Jenkins没有什么标准的方法,我们的目的是要解决实际中遇到的问题。Jenkins是一个快速发展的开源项目,开源项目的特点就是文档比较少(尤其是插件),快速发展的特点就是有时会有这样那样的bug。这时候我们需要的是耐心、好奇心以及想象力。
PS. 就像我上面说的,Jenkins是个快速发展的项目,就在我写这个文章的时候通过配置username和password凭据来用git插件签出代码还不行,结果刚写完文章插件就更新了,无力再次做实验了……


[img]http://dl2.iteye.com/upload/attachment/0090/5269/980e2c73-4c24-3264-a5bb-9f0f50d53509.png[/img]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值