`
bookong
  • 浏览: 95893 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

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

    博客分类:
  • ci
阅读更多
用任务列表归类各个Job

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







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







用户登录

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

[root@svr80 ~]# cd /jenkins/
[root@svr80 jenkins]# service jenkins stop
[root@svr80 jenkins]# cp -a jenkins-home/ jenkins-home-bak
[root@svr80 jenkins]# service jenkins start



使用专有用户数据库进行身份验证

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

使用LDAP进行身份验证

首选升级一下LDAP的插件。




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





管理用户信息

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












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




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




权限设置

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




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




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




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




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

插件开发

插件开发我也是刚刚接触,简单分享一下经验。
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会自己管理插件。部署一个自定义的内核插件步骤:

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


总结

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

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


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



  • 大小: 14.8 KB
  • 大小: 4 KB
  • 大小: 18.5 KB
  • 大小: 6.1 KB
  • 大小: 2.8 KB
  • 大小: 14.2 KB
  • 大小: 8.4 KB
  • 大小: 15 KB
  • 大小: 19.1 KB
  • 大小: 2.8 KB
  • 大小: 12.7 KB
  • 大小: 6.1 KB
  • 大小: 17.3 KB
  • 大小: 17.4 KB
  • 大小: 18.5 KB
  • 大小: 7.8 KB
  • 大小: 20.8 KB
分享到:
评论
7 楼 bookong 2014-03-17  
PTZhuf 写道
PTZhuf 写道
楼主, authenticated 这个是jenkins自带的用户组吗?
是否有地方查询自带的都有哪些用户组(角色)?



我希望已经登录的用户可以创建job,并对自己创建的job拥有所有权限,而不影响到其他job,如果在“项目安全矩阵”那儿允许登录用户对job进行configure,就会影响到所有的job,并且按照文中所说这些权限是相互联合的。。。如果不这么配置的话,用户就会连自己创建的job都没有配置的权限,无法完成一个job的创建了。。。楼主不知有啥好方法?


关于你说的这个问题,说实话,因为我们公司的jenkins只是内网自己公司内部访问,我设置的权限其实是最简单的登陆后可以做任何事这种,因为弄的负责每个人都跑来找我真的很烦。如果希望某个job只能某些人有权限,可以在job中“启用项目安全”中配置,这个我上面有说。
我理解你的问题是,希望用户自己创建的job可以有所有权限,这个在我研究jenkins权限时还没找到,如果你特别需要这个功能,可以尝试自己做一下jenkins插件开发。
6 楼 bookong 2014-03-17  
PTZhuf 写道
楼主, authenticated 这个是jenkins自带的用户组吗?
是否有地方查询自带的都有哪些用户组(角色)?

不好意思,好久没登陆,才看到你的回复
“安全矩阵”这几个字的最右边有个问号按钮,点击后里面有说明:
引用
……这其中包含特殊用户'anonymous',其代表未登录用户,同样还有'authenticated',其代表所有已认证的用户(也就是除了匿名用户的所有用户.)……
5 楼 PTZhuf 2014-02-21  
PTZhuf 写道
楼主, authenticated 这个是jenkins自带的用户组吗?
是否有地方查询自带的都有哪些用户组(角色)?



我希望已经登录的用户可以创建job,并对自己创建的job拥有所有权限,而不影响到其他job,如果在“项目安全矩阵”那儿允许登录用户对job进行configure,就会影响到所有的job,并且按照文中所说这些权限是相互联合的。。。如果不这么配置的话,用户就会连自己创建的job都没有配置的权限,无法完成一个job的创建了。。。楼主不知有啥好方法?
4 楼 PTZhuf 2014-02-21  
楼主, authenticated 这个是jenkins自带的用户组吗?
是否有地方查询自带的都有哪些用户组(角色)?
3 楼 PTZhuf 2014-02-21  
bookong 写道
331008019 写道
楼主学习知识时结合实践的的钻研精神值得大家学习,写得很有深度 !不像很多一知半解的人写出来的文章那样泛泛之谈,读完后有种“从入门到精通”的感觉…

谢谢回复,我也是浅入浅出而已

我表示值得赞一下~!!可惜木有赞的按钮~!
2 楼 bookong 2014-01-06  
331008019 写道
楼主学习知识时结合实践的的钻研精神值得大家学习,写得很有深度 !不像很多一知半解的人写出来的文章那样泛泛之谈,读完后有种“从入门到精通”的感觉…

谢谢回复,我也是浅入浅出而已
1 楼 331008019 2013-12-22  
楼主学习知识时结合实践的的钻研精神值得大家学习,写得很有深度 !不像很多一知半解的人写出来的文章那样泛泛之谈,读完后有种“从入门到精通”的感觉…

相关推荐

    Jenkins创建用户并分配不同视图的权限.md

    Jenkins创建用户并分配不同视图的权限

    Jenkins基础入门-5-用户和权限管理.rar

    - 用户角色:Jenkins支持多种角色,如管理员、开发者、操作员等,不同角色有不同的权限设定。 3. 权限管理: - 系统级权限:管理员可以全局控制所有用户的权限,包括访问控制、管理插件、配置系统设置等。 - ...

    Jenkins 用户手册.pdf

    - **安全管理:** Jenkins提供多种安全设置,包括用户认证、权限控制、安全更新等,以确保流水线的安全执行。 - **监控:** 可以通过各种插件和工具来监控Jenkins服务器和流水线的性能和状态,及时发现并处理问题。 ...

    Jenkins的安装与使用

    Jenkins的安装与使用 Jenkins 是一款由 Java 编写的开源的持续集成工具。在与 Oracle 发生争执后,项目从 Hudson 项目复刻。Jenkins 是一个独立的开源自动化服务器,可用于自动执行与构建,测试,交付或部署软件...

    jenkins基础使用教程

    Jenkins 基础使用教程 Jenkins 是一个功能强大且广泛使用的自动构建工具,它可以帮助开发者自动化构建、测试和部署应用程序。在这篇教程中,我们将学习如何配置 Jenkins,使用 Maven 进行项目构建。 Jenkins 的...

    Jenkins官方用户手册(Jenkins User Handbook)

    用户手册中也会涉及一些关于使用Jenkins的最佳实践,这是根据社区和经验总结出来的建议,帮助用户更高效地使用Jenkins。 通过阅读和理解这些知识点,用户可以全面掌握Jenkins的安装、配置、使用和管理,以建立高效...

    Jenkins上手使用说明

    ### Jenkins上手使用说明知识点 ...以上知识点涵盖了Jenkins的基本安装、配置、构建Job、远程任务执行、Pipeline的使用、证书配置等关键操作,以及一些高级特性的简单介绍,为初学者提供了一个全面的入门指南。

    CTF与Jenkins集成

    【CTF与Jenkins集成】是将CollabNet TeamForge(CTF)这款项目管理和协作平台与Jenkins这款持续集成/持续部署工具相结合的过程。这种集成有助于自动化软件开发流程,确保代码质量,提高团队协作效率。 1. **CTF中...

    Jenkins使用手册.pdf

    1. Jenkins首页:Jenkins首页是用户与Jenkins交互的起点,它提供了导航到其他页面的入口。首页的各个图标、Tab页、任务队列和状态,提供了项目构建过程的即时概览。 2. 图标:Jenkins图标以四种可能的状态显示,...

    jenkins用户使用手册

    Jenkins用户使用手册详细解读 Jenkins,作为一个广泛使用的开源软件项目,它的核心价值在于提供了一个强大而灵活的持续集成(Continuous Integration, CI)和持续部署(Continuous Delivery, CD)平台。基于Java...

    jenkins使用文档.zip

    这个“jenkins使用文档.zip”将引导你一步步地设置和使用Jenkins,无论是新手还是有经验的开发者,都能从中受益,提升开发效率和软件质量。通过学习和实践,你将掌握如何利用Jenkins构建高效、可靠的软件交付流水线...

    使用java调用jenkins api

    在调用Jenkins API时,可能会遇到各种错误,如网络问题、权限不足、API版本不兼容等。需要正确处理HTTP状态码和返回的错误信息。 10. **示例代码**: 压缩包中的`jenkinsApi`文件可能包含一个简单的Java示例,...

    Jenkins使用说明文档(持续更新)

    Jenkins可以应用于多种场景,如接口测试,通常与Jmeter、Ant、Tomcat等工具结合使用;自动化功能测试,结合Selenium、Tomcat以及Python或Java脚本语言。 2. Jenkins安装(以Linux为例) 2.1 所需环境 安装Jenkins前...

    jenkins中提供使用的 token

    Jenkins中的Token使用 Jenkins是一款流行的自动化构建工具,提供了许多实用的功能来提高构建和部署的效率。在Jenkins中,Token是一种特殊的变量,可以在构建过程中动态生成不同的值。Token可以用来实现各种自动化...

    Jenkins自动构建使用手册

    ### Jenkins自动构建使用手册 #### Jenkins的由来与演变 Jenkins是一款强大的开源持续集成工具,最初名为Hudson,由Sun Microsystems(后被Oracle收购)的一组开发者在2004年创建。随着时间的发展,Hudson社区变得...

    jenkins压缩包,jdk8,jenkins.war以及Jenkins安装及配置的pdf

    Jenkins是一款广泛使用的持续集成(Continuous Integration,CI)和持续部署(Continuous Deployment,CD)工具,它能够自动化软件构建、测试和部署流程。这个压缩包包含Jenkins的基础环境——JDK8,Jenkins的核心...

    Jenkins 实操部署指南

    - Jenkins 提供了细致的权限管理功能,管理员可以为不同用户或用户组分配相应的权限,如读写权限、构建权限等。 - 权限管理是保障 Jenkins 系统安全的重要环节。 #### 总结 通过以上步骤,你可以顺利地在 CentOS ...

    jenkins使用手册

    本手册将深入介绍 Jenkins 的安装、配置、插件使用以及日常运维等方面的知识。 **一、Jenkins 安装与配置** 1. **系统要求**:Jenkins 可运行于多种操作系统,包括 Windows、Linux 和 MacOS 等。确保你的系统满足...

Global site tag (gtag.js) - Google Analytics