微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

持续集成环境二-Jenkins安装和插件管理与应用

1、简介

官网: http://jenkins-ci.org

Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能

Jenkins的特征:

  1. 开源的Java语言开发持续集成工具,支持持续集成,持续部署。
  2. 易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理。
  3. 消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知生成JUnit/TestNG测试报告。名称
  4. IP地址 安装的软件代码托管服务器。 分布式构建:支持Jenkins能够让多台计算机一起构建/测试。
  5. 文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
  6. 丰富的插件支持支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker等

2、安装jenkins

2.1 安装JDK

参考连接

2.2 获取jenkins安装包

下载页面:https://jenkins.io/zh/download/
安装文件:jenkins-2.282-1.1.noarch.rpm

wget http://mirrors.jenkins-ci.org/redhat/jenkins-2.282-1.1.noarch.rpm

2.3 安装jenkins

rpm -ivh jenkins-2.190.3-1.1.noarch.rpm

或者

yum -y locainstall jenkins-2.190.3-1.1.noarch.rpm

目录结构

/usr/lib/jenkins/jenkins.war      #WAR包
/etc/sysconfig/jenkins            #配置文件
/var/lib/jenkins/                 #认的JENKINS_HOME目录
/var/log/jenkins/jenkins.log      #Jenkins日志文件

2.4 修改Jenkins配置

vim /etc/sysconfig/jenkins
修改内容如下:

JENKINS_USER="root"
JENKINS_PORT="9999"

vim /etc/rc.d/init.d/jenkins
修改内容如下:

candidates="的下一行添加
/usr/local/jdk1.8.0_112/bin/java  #java的环境变量

2.5 启动Jenkins

systemctl start jenkins && systemctl enable jenkins

2.6 打开浏览器访问

http://10.99.200.111:9999,因为Jenkins插件需要连接认官网下载,速度非常慢,而且经过会失败,所以我们暂时先跳过插件安装

图片

3、Jenkins插件管理

Jenkins本身不提供很多功能,我们可以通过使用插件来满足我们的使用。例如从Gitlab拉取代码,使用Maven构建项目等功能需要依靠插件完成。接下来演示如何下载插件

3.1 修改Jenkins插件下载地址

1)修改认default.json文件

cd /var/lib/jenkins/updates
sed -i 's#https://updates.jenkins.io/download#https://mirrors.tuna.tsinghua.edu.cn/jenkins#g' default.json
sed -i 's#http://www.google.com#https://www.baidu.com#g' default.json

2)修改插件地址

Jenkins->Manage Jenkins->Manage Plugins,点击Advanced,把Update Site改为国内插件下载地址https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json,Sumbit后,在浏览器输入:http://10.99.200.111:9999,重启Jenkins即可。

图片

3.2 下载中文汉化插件

1)搜索中文插件并安装

Jenkins->Manage Jenkins->Manage Plugins,点击Available,搜索"Chinese"

图片

图片

2)重启Jenkins后,就看到Jenkins汉化了

图片

3.3 Jenkins用户权限管理

利用Role-based Authorization Strategy 插件来管理Jenkins用户权限

图片


图片


开启权限全局安全配置,授权策略切换为"Role-Based Strategy",保存。

图片


刷新页面即可看到

图片

3.4 创建角色

1)创建角色

在系统管理页面进入 Manage and Assign Roles,点击"Manage Roles",添加相应的角色权限保存即可。

图片


图片

  • Global roles(全局角色):管理员等高级用户可以创建基于全局的角色

  • Project roles(项目角色):针对某个或者某些项目的角色

  • Slave roles(奴隶角色):节点相关的权限
    我们添加以下三个角色:

    baseRole:该角色为全局角色。这个角色需要绑定Overall下面的Read权限,是为了给所有用户绑定最基本的Jenkins访问权限。注意:如果不给后续用户绑定这个角色,会报错误用户名 ismissing the Overall/Read permission
    role1:该角色为项目角色。使用正则表达式绑定"ops.",意思是只能操作ops开头的项目。
    role2:该角色也为项目角色。绑定"dev.
    ",意思是只能操作dev开头的项目。

  • @H_502_189@

    2)创建用户

    在系统管理页面进入 Manage Users,点击新建用户

    图片


    图片


    图片

    3)给用户分配角色

    系统管理页面进入Manage and Assign Roles,点击Assign Roles绑定规则如下:wangkx用户分别绑定baseRole和role1角色,renlt用户分别绑定baseRole和role2角色,保存即可。

    图片


    图片


    图片

    4)创建项目测试权限

    以admin管理员账户创建两个项目,分别为ops-test01和dev-test01

    图片


    图片


    结果为:
    wangkx用户登录,只能看到ops-test01项目

    图片


    renlt用户登录,只能看到dev-test01项目

    在这里插入图片描述

    3.5 Jenkins凭证管理

    1)安装Credentials Binding插件

    要在Jenkins使用凭证管理功能,需要安装Credentials Binding插件

    图片


    图片


    安装插件后,右边多了"凭证"菜单在这里管理所有凭证

    图片


    图片

    • Username with password:用户名密码 SSH Username with private
    • key:使用SSH用户和密钥 Secret
    • fifile:需要保密的文本文件,使用时Jenkins会将文件复制到一个临时目录中,再将文件路径设置到一个变量中,等构建结束后,所复制的Secret
    • fifile就会被删除 Secret text:需要保存的一个加密的文本串,如钉钉机器人或Github的api
    • tokenCertifificate:通过上传证书文件的方式
    • @H_502_189@

      常用的凭证类型有:Username with password用户密码)和SSH Username with private key(SSH密钥)
      接下来以使用Git工具到Gitlab拉取项目源码为例,演示Jenkins的如何管理Gitlab的凭证。

      2)安装Git插件和Git工具

      为了让Jenkins支持从Gitlab拉取源码,需要安装Git插件以及在CentOS7上安装Git工具。
      gitlab参考连接

      图片


      CentOS7上安装Git工具:

      yum install git -y #安装
      git --version      #安装后查看版本
      

      3)用户密码类型

      step1:创建凭证Jenkins->凭证->系统->全局凭证->添加凭证->选择"Username with password",输入Gitlab的用户名密码,点击"确定"。

      图片


      图片

      step2:测试凭证是否可用

      在已经创建的项目dev-test01上找到"源码管理"->“Git”,在Repository URL复制Gitlab中的项目URL

      图片

      这时会报错说无法连接仓库!在Credentials选择刚刚添加的凭证就不报错啦

      图片


      保存配置后,点击构建"立即构建”,开始构建项目

      图片


      图片


      查看/var/lib/jenkins/workspace/目录,发现已经从Gitlab成功拉取了代码到Jenkins中。

      在这里插入图片描述

      4)SSH密钥类型

      SSH免密登录示意图

      图片

      step1:使用root用户生成公钥和私钥

      ssh-keygen -t rsa #在/root/.ssh/目录保存了公钥和使用
      id_rsa:私钥文件
      id_rsa.pub:公钥文件
      

      在这里插入图片描述

      step2:把生成的公钥放在Gitlab中

      以root账户登录->点击头像->Settings->SSH Keys复制刚才id_rsa.pub文件内容到这里,点击"Add Key"

      图片


      图片

      step3:在Jenkins中添加凭证,配置私钥

      在Jenkins添加一个新的凭证,类型为"SSH Username with private key",把刚才生成私有文件内容复制过来

      图片


      图片

      step4:测试凭证是否

      在已经创建的项目ops-test01上找到"源码管理"->“Git”,在Repository URL复制Gitlab中的项目URL,这次要使用Gitlab的SSH连接,并且选择SSH凭证。

      gitlab上获取项目的ssh连接

      图片


      jenkins上ops-test01上测试

      图片


      保存配置后,点击构建"立即构建”,开始构建项目

      图片


      查看/var/lib/jenkins/workspace/目录,发现已经从Gitlab成功拉取了代码到Jenkins中。

      图片

      3.6 Maven安装和配置

      在Jenkins集成服务器上,我们需要安装Maven来编译和打包项目。

      1)安装Maven(先上传Maven软件到10.99.200.111上)

      cd /root/pkg
      tar -xf apache-maven-3.6.3-bin.tar.gz -C /usr/local/   #解压
      echo 'export MAVEN_HOME=/usr/local/apache-maven-3.6.3'  >> /etc/profile
      echo 'export PATH=$MAVEN_HOME/bin:$PATH'  >> /etc/profile
      source  /etc/profile   #配置生效
      mvn -v   #查看maven版本
      

      2)全局工具配置关联JDK和Maven

      step1:关联jdk和maven

      Jenkins->Global Tool Confifiguration->JDK->新增JDK,配置如下:

      图片


      Jenkins->Global Tool Confifiguration->Maven->新增Maven,配置如下:

      图片

      step2:添加Jenkins全局变量

      Manage Jenkins->Configure System->Global Properties ,添加三个全局变量JAVA_HOME、MAVEN_HOME、PATH+EXTRA

      图片

      step3:修改Maven的settings.xml

      mkdir /usr/local/apache-maven-3.6.3/repo   #创建maven的本地仓库
      

      vim /usr/local/apache-maven-3.6.3/conf/settings.xml #分别添加如下配置项

      <mirrors>
            <id>aliyunmaven</id>
            <mirrorOf>central</mirrorOf>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
        </mirrors>
      
      <localRepository>/usr/local/apache-maven-3.6.3/repo</localRepository>
      

      图片


      图片

      step4:测试Maven是否配置成功

      使用之前的gitlab密码测试项目(ops-test01),修改配置

      图片


      图片


      图片


      图片


      都到这儿了,更多信息,详见个人微信公众号ALL In Linux,来扫一扫吧!

      在这里插入图片描述

      版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐