Chinaunix首页 | 论坛 | 博客
  • 博客访问: 351699
  • 博文数量: 52
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 577
  • 用 户 组: 普通用户
  • 注册时间: 2013-04-27 14:21
个人简介

知道自己该干嘛,知道自己能干嘛

文章分类

全部博文(52)

文章存档

2019年(1)

2018年(8)

2017年(2)

2016年(11)

2015年(3)

2014年(10)

2013年(17)

我的朋友

分类: 系统运维

2014-08-09 19:40:50


           
           
今天我们来学习jenkins, 到底什么是jenkins ? 在工作中他能给我们带来什么变化呢?
                      首先我们先来了解下什么是jenkins, Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使持续集成变成可能。
                      什么是持续集成,就是代码上传到版本控制软件,然后jenkins自动获取代码进行编译,再推送到指定服务器的过程。
                      可以对版本控制软件的代码进行持续编译,然后自动推送。现实中我们的流程是样的,以java代码为例 : 

                      1. 开发提交代码到svn ---> 2. QA人员使用ant编译代码 ---> 3. QA人员同步线上测试服务,重启测试服务 ---> 4 .QA人员测试 ---> 5.运维全网同步 
                     
                      当时候用了jenkins以后 2,3步骤由jenkins代替,自动编译,推送代码,重启服务,然后QA人员直接测试。

                      代码的持续化构建是自动化运维的源头,是代码上线的环节之首。
 
                     (一) 部署jenkins
                     下载jenkins war包,配置jdk环境,设置java环境变量,这些我就不在这里赘述了
                      
  1.            启动jenkins
  2.        
  3.            nohup java -jar /usr/local/src/jenkins.war --httpPort=9097 > /data/jenkins/jenkins-log/LOGFILE 2>&1 &
  4.       
  5.            --httpPort : 
  6.                                   指定jenkins web_ui使用的访问端口
  7.        
    1.      /data/jenkins/jenkins-log/LOGFILE: 
    2.                                    指定log生成的位置 
                      然后我们访问url 

                      

                       第一步 , jenkins 搭建我们就完成了,现在你就可以对jenkins有一个直观的认识

                      现在进入正题,我们现在已经对jenkins有了大概的了解,但是我们怎么对jenkins进行访问控制呢?
                 
                      (二) 访问安全设置
                      方法 1. Delegate to servlet container 基于servlet
                     
  1.             setp 1
  2.             kill 杀掉刚才启动的 jenkins 进程
  3.  
  4.             setp 2 启动 jenkins 
  5.             nohup java -jar /usr/local/src/jenkins.war --argumentsRealm.passwd.jenkins=423423 --argumentsRealm.roles.jenkins=admin \
  6.                                                  --httpPort=9097 > /data/jenkins/jenkins-log/LOGFILE 2>&1 &
  7.             --argumentsRealm.passwd.jenkins=423423 :
  8.                                                   为jenkins用户设置密码
  9.        --argumentsRealm.roles.jenkins=admin :  
  10.                                                   赋予jenkins用户admin权限
  11.                                        
  12.             setp 3 开启安全设置,访问控制基于servlet 
  13.             Manage Jenkins --> Configure Global Security --> Enable security --> 勾选 Delegate to servlet container -->Legacy mode --> save
  14.       
  15.             然后我们看到jenkins会自动变成 ,需要 log in 才能够使用完整功能 ,未登录的时候是匿名用户,紧有一些 read权限
  16.            
  17.              然后使用我们刚建立的 jenkins 用户登录,就能够使用完整功能 , 这种方式最简单的访问认证 。

                      方法 2. 基于权限矩阵   

  1.        setp 1 开启 jenkins
  2.        nohup java -jar /usr/local/src/jenkins.war --httpPort=9097 > /data/jenkins/jenkins-log/LOGFILE 2>&1 &
         
            setp 2 开启安全认证,并使用权限矩阵

            Mange Jenkins --> Configure Global Security --> 勾选 Enable security --> Jenkins'own database --> 不选 Allow users to sign up
            Matrix-based security --> add 用户 (这时候的用户我们还未建立) --> 为用户勾选相应权限 --> apply

           
           
           
           点击 jenkins 标签可以 sgin up, 使用刚才添加权限的用户为用户名注册, 注册后的这个用户一般为我们的admin用户
           刚才我们关闭了sign up, 就是在登录界时候,不提供注册,那我们如何新添加一个用户呢 ?
 
           admin 用户登陆 --> Manage Jenkins --> Manage Users --> Create user 在这个环节,注册用户 --> Config Global Security 用户赋权
           
           
                    

                    方法3. 基于 Role Strategy Plugin
                    Adds a new role-based strategy to manage users' permissions , 使用角色插件为注册用户赋权
                    

  1.       setup 1 安装插件 
  2.       Manage Jenkins --> Manage Plugin --> Available --> 勾选 Role Strategy Plugin --> Download now and install after restart 
  3.       手动安装插件地址  下载文件 --> 放在 $jenkins_HOME/plugins/目录下
  4.     
       setup 2 启用角色认证
           Mange Jenkins --> Config Global Security --> Enable security --> Jenkins’ own user database  --> Role-Based Strategy --> apply

           setup 3 配置角色认证
         
 Mange Jenkins --> Manage and Assign Roles --> Manage Roles --> 可定义基于三种维度的角色,全局维度 ,项目维度,
Slave角色

           setup 4 配置角色与用户关联
           Mange Jenkins --> Manage and Assign Roles --> 
Assign Roles 关联用户与角色 --> apply save

          

                               以上介绍的就是jenkins的三种认证方式,后文我们会介绍持续化构建与推送环节。

                                             
                                                                                                       
                                                                                                          emar_Cail



           参考资料 






                      


                                 
                       
阅读(2168) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~