jenkins的基本使用

一、jenkins安装与配置

1、jenkins

(1)持续集成

        持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

(2)jenkins:

        Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能

2、jenkins的安装

      Jenkins的安装可以通过rpm包安装,也可通过docker镜像的方式去安装,通过docker镜像的方式去安装只需下载相应的镜像运行即可。通过程序包的安装方式如下。

(1)安装前环境准备

       安装jenkins需要安装jdk

#安装jdk
]# yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel -y

(2)通过yum方式安装

# 安装yum源
]# wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins.io/redhat-stable/jenkins.repo
]# rpm --import http://pkg.jenkins.io/redhat/jenkins.io.key
# 安装jenkins
yum –y install jenkins

(3)通过rpm方式安装

# 在清华源上下载jenkins rpm包
]# wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.109-1.1.noarch.rpm
# 安装
]# rpm -ivh jenkins-2.109-1.1.noarch.rpm

(4)jenkins安装目录的说明

    /var/lib/jenkins:jenkins安装的主目录

    /etc/init.d/jenkins:jenkins启动文件,centos7上可以用两种方式启动

    /var/cache/Jenkins:jenkins程序文件目录

    /var/log/Jenkins/:jenkins日志文件存放目录

    /etc/sysconfig/jenkins:jenkins的配置文件

    /usr/lib/jenkins/:jenkins war包存放目录

(5)配置jenkins

    Jenkins的配置文件为” /etc/sysconfig/jenkins”,主要的配置有:

# 运行jenkins及脚本的用户
JENKINS_USER="jenkins"
# Jenkins主目录
JENKINS_HOME="/var/lib/jenkins"
# Jenkins的监听端口
JENKINS_PORT="8080"
# 绑定的ip地址
JENKINS_LISTEN_ADDRESS=""

(6)启动jenkins

]# systemctl start Jenkins
]# systemctl status Jenkins

      Jenkins启动完成后就可以登录jenkins,默认端口为8080,第一次登录时默认密码存放在” /var/lib/jenkins/secrets/initialAdminPassword”中,登录时需要创建账户,以及选择安装需要的插件(插件可安装也可以不用安装)。

3、jenkins插件的安装

      Jenkins安装完成后,插件的安装可以通过登录系统在”系统设置”的”插件管理”中安装、更新、卸载插件;也可将下载好的插件拷贝到”/var/lib/jenkins/plugins/”目录下,重启jenkins可以将插件加载到jenkins中。# 将自己下载好的插件拷贝到plugins目录下

]# mv plugins/* /var/lib/jenkins/plugins/
# 修改插件目录的权限
]# chown jenkins:jenkins /var/lib/jenkins/plugins/ -R
# 重启jenkins
]# systemctl restart Jenkins

      通过默认的方式安装插件时如果安装不上,也可以到清华仓库中(https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/)或官网(http://updates.jenkins-ci.org)下载插件通过上传到管理端完成安装。

二、jenkins的一些基本操作

1、添加节点

      Jenkins接地那的添加可通过jnlp的方式添加,也可通过ssh master主动去连接slave。使用ssh添加节点时,需要先准备好一个节点,在节点上安装jdk等。准备好后操作步骤如下:“系统管理”——>“节点管理”——>“新建节点”。填入节点的相关信息后点击保存即可。在添加节点时也需要添加节点的认证信息(可以通过用户名密码认证或者公私钥认证),在“credentials”处,添加后选择相关的认证信息即可。

 

2、使用jenkins构建java项目

      此处我将github上dubbo分布式的监控项目dubbo-admin克隆到自己的gitlab仓库中,通过node1节点构建打包,所以需要在node1节点上安装mvn,安装步骤如下:

]# mkdir /home/mvn
]# cd /home/mvn/
]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
]# tar -xf apache-maven-3.5.4-bin.tar.gz
]# cd apache-maven-3.5.4
]# echo 'export PATH=/home/mvn/apache-maven-3.5.4/bin/:$PATH' >>/etc/profile
]# . /etc/profile 
]# mvn -v
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)
Maven home: /home/mvn/apache-maven-3.5.4

      上面环境准备好,在Jenkins中创建一个名称为“my-freestyle”的Freestyle project的任务,主要配置如下:

(1)配置General

      General主要用于配置一些项目的基本信息,选择项目的构建节点也在此处配置,通过勾选“限制运行项目的节点”并输入节点的标签即可。

 

(2)配置源码管理

      代码的源码管理主要用于配置项目的仓库地址及项目的分支,配置了自己的私有仓库地址后需要完成认证才能获取到项目源码。

 

(3)构建触发器

      构建触发器主要用于配置通过什么方式去触发项目的构建,如果是手动构建,此处不需要选择。

(4)构建

       构建用于配置该项目怎么去构建,此处选择“执行shell”构建,配置如下;也可增加多个构建步骤,各步骤则按顺序执行。同时也可以在“构建环境”中添加变量,此处通过调用不同的参数构建。

 

(5)构建后的操作

      该配置用于配置在构建后做什么操作,此处选择“归档成品”,意味着构建后的成品会被放在master上,并可通过jenkins web页面去下载。

 

      上面的配置完成后就可以去进行构建了。

3、jenkins中集成sonarqube

      SonarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误,在jenkins中集成sonarqube时需要安装sonarqube并在jenkins中安装sonarqube插件。

      使用docker方式安装sonarqube:

]# docker run -it -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube

      在jenkins中需要安装“SonarQube Scanner”插件。安装插件在“系统管理”——>“插件管理”中搜索“sonar”后安装该插件。

(1)在sonarqube中创建token

      首次登陆sonarqube时(默认用户名和密码均为admin)会提示创建token,根据提示创建一个token并记住该token(在低版本的jenkins中配置sonarqube时需要配置token)。并点击“continue”按钮。

 

      接下来选择java,并选择maven,并记住右侧的代码。

 

(2)在jenkins中配置sonarqube

      在jenkins中选择“系统管理”——>“系统设置”,在“系统设置”中找到”SonarQube Server”并添加一个sonarqube。配置如下,在一些低版本jenkins中还需要配置token等。

 

(3)配置SonarQube Scanner

      在“系统设置”中添加好sonarqube后,还需要在“系统管理”——>“全局工具配置”中安装“SonarQube Scanner”。配置如下:

(4)在构建任务中使用SonarQube

      在构建工程中使用sonarqube时,需要新加一个“Execute SonarQube Scanner”的构建步骤,具体配置如下:

 

      配置中sonar.sources为源码位置,sonar.java.binaries为构建后的jar包的位置,配置完成后,该构建工程中会出现sonarqube的图标,构建完成后点击构建历史中sonarqube图标会跳转到sonarqube检测结果界面。

4、jenkins中的角色管理

      Jenkins通过角色管理可以为不同的用户分配不同的操作权限,角色管理需要安装插件“Role-based Authorization Strateg”。该插件安装完成后需要在“系统管理”——>“全局安全配置”——>“授权策略”中选择“Role-Based Strategy”,之后会在“系统管理”中出现“Manage and Assin Roles”,进入“Manage and Assin Roles”可进行角色的管理。

(1)角色管理

      用户角色管理是先在“Manage Roles”中创建角色,并对角色授权;然后在“Assign Roles”中将相应的用户绑定到角色,该用户便有了该角色的权限。

(2)基于项目的角色管理

      基于项目的角色管理是针对项目对用户分配相应的权限,如对用于“dev_dayi”分配对项目“dev-freestyle”项目有构建的权限:首先在 “Manage Roles”中创建基于“Project”的角色,并对角色授权,然后在“Assign Roles”中将用户绑定到该角色。如下所示:

 

5、构建jenkins pipeline

      Pipeline主要是通过编写“Groovy”脚本去构建项目的,pipeline的配置页面也比较简单,编写一个简单的pipeline脚本如下(pipeline中没有选择执行节点的选项,为了让构建正常进行需要在master上安装mvn或者将master的执行数量设置为0):

node {
    stage('Code PULL'){
        echo "Code PULL"
        git credentialsId: '81de0eb9-5eca-471c-a1fd-b18e5a3e9a1b', url: 'http://192.168.16.110/my-dubbo/dubbo-admin.git'
    }
    stage('Code Build'){
        echo "Code Build"
        sh '/home/maven/apache-maven/bin/mvn package'
    }
    stage('Unit Test'){
        echo "Unit Test"
    }
    stage('是否部署 '){
        input '部署开发环境 '
    }
    stage('deploy test env'){
        echo "test"
    }
}

    Pipeline脚本中的部分命令可以通过点击pipeline配置页面左下角的“流水线语法”去查询。

6、自动触发构建

(1)在jenkins中配置gitlab

      在jenkins中配置gitlab时先要添加gitlab插件,之后在“系统管理”—>“系统配置”中配置gitlab,gitlab配置如下:

 

       此处还需要添加gitlab的token认证,点击“添加”按钮进行添加,该认证界面的类型选择“GitLab API token”,该token需要在gitlab的“User Settings”—>“Access Token”中生成,生成前需要勾选“api”。该gitlab添加完成后,jenkins就可以访问gitlab。

 

(2)在项目中设置自动触发构建

      以上面的pipeline项目为例,在添加好gitlab后,在构建项目中的构建触发器中会出现gitlab项目地址,基本的配置如下:

 

      高级的配置如下:

 

(3)配置gitlab认证jenkins

      Jenkins中设置完成之后同样也需要在gitlab中设置jenkins项目的相关信息,设置地址为具体项目中的“settings”—>“integrations”中。具体的设置如下所示,具体的trigger可根据自己的需求选择。

 

      在新版本的gitlab中设置是可能会报“url is blocked: requests to the local network are not allowed”的错误,这是因为新版本中不允许向本地网络发送webhook请求,只要进行以下的操作即可:在gitlab的“设置”—>“network”—>“outbound requests”中勾选如下选项即可。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值