jenkins部署流程,对接gerrit详细教程
jenkins
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成,Jenkins只是一个平台,真正运作的都是插件。主要用于持续、自动的构建/测试软件项目、监控外部任务的运行
jenkins 相关网站
Jenkins官网 https://jenkins.io/
Jenkins官网文档 https://www.jenkins.io/zh/doc/
学习文档 https://www.w3cschool.cn/jenkins/jenkins-5h3228n2.html
jenkins服务部署
引言
我以在云服务器 ESC (Elastic Compute Service)上搭建为例,ESC系统为 centos7.9。公网IP为121.51.39.239。里面涉及到的密码设置,可以自行选择密码配置,这里我统一设置为123123,避免搞混。
资源包
- 有些资源在centos中无法通过
yum install
安装,需要下载后手动安装。 - 下面的下载链接中有个 jenkins 资源压缩包,需要提前下载准备好。
链接:https://pan.baidu.com/s/1g-OpIumZDH3XpuJjsuKNmA?pwd=f59e 提取码:f59e - 下载完成后,需要在Windows下解压出来得到 jenkins_src 文件夹,里面包括 jenkins安装包 (
jenkins-2.331-1.1.noarch.rpm
) , 以及 jenkins插件 (jenkins-plugins.tar.gz
).后续将这两个文件上传到 centos 的根路径中。需要进行手动安装。 - 如果想要获取最新的jenkins安装包:http://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/
开始部署
-
获取资源包
将Windows下的 jenkins-plugins.tar.gz 和 jenkins-2.331-1.1.noarch.rpm 上传到 Centos的根路径 -
配置jenkins yum仓库(国外的访问很慢)
cd /etc/yum.repos.d/ wget http://pkg.jenkins.io/redhat/jenkins.repo rpm --import http://pkg.jenkins.io/redhat/jenkins.io.key
-
开始安装JDK
Jenkins是Java编写的,所以需要先安装JDK,这里采用yum安装,如果对版本有需求,可以直接在Oracle官网下载JDK。yum install -y java-1.8.0 git vim
-
创建jenkins用户
useradd jenkins passwd jenkins 123456 cd /root cp jenkins-plugins.tar.gz 和 jenkins-2.331-1.1.noarch.rpm /home/jenkins su - jenkins cd /home/jenkins
-
快速安装jenkins
本文使用yum进行安装,大家也可以使用编译安装。
其他版本下载地址:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/yum -y localinstall jenkins-2.33*.rpm
-
配置国内的插件源
vim /var/lib/jenkins/hudson.model.UpdateCenter.xml <?xml version='1.1' encoding='UTF-8'?> <sites> <site> <id>default</id> <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url> </site> </sites>
-
更改默认端口
默认jenkins服务器端口为8080,如果端口被占用,则可使用其他端口,此处如果被占用,我将jenkins端口配置为8088.vim /etc/sysconfig/jenkins # Port Jenkins is listening on. # Set to -1 to disable # JENKINS_PORT="8088"
-
插件安装
将插件包 jenkins-plugins.tar.gz 解压到插件目录rm /var/lib/jenkins/plugins -rf tar xf /home/jenkins/jenkins-plugins.tar.gz -C /var/lib/jenkins
-
启动jenkins服务
systemctl start jenkins /sbin/chkconfig jenkins on
jenkins web页面
-
Jenkins Web访问地址:
http://121.51.39.239:8088 -
解锁
新版本的jenkins为了保证安全,在安装之后有一个锁,需要设置密码之后才可以解锁
复制这个文件下面的ID,否则不可以进行安装。# cat /var/lib/jenkins/secrets/initialAdminPassword 1323edda2df49b6b8787ecfdsa3a
-
插件选项
-
设置密码
首次登陆,用户名默认为admin,此时需要给你设置密码,否则下次登陆就无法登陆成功。a. 点击用户列表,点击admin
b. 点击设置里配置用户密码,点击保存
c. 然后会进入登录页面,输入用户名admin和密码123456
对接ldap
如果你不清除 LDAP 服务器如何搭建,请参考我的博文 搭建LDAP服务器详细流程,里面详细介绍了LDAP 服务器的搭建流程。
- 点击系统管理-》全局安全配置
- 安全域设置为LDAP,server url:ldap://121.51.39.239:389,端口号默认为389,然后点击高级服务器配置
- 配置 user search base 和 group search base 为 dc=codesweet,dc=com,
- 点击下面按钮,然后 manager DN 选择 cn=admin,dc=codesweet,dc=com
- 然后点击保存,然后退出当前用户,用ldap上的用户登录。
jenkins 对接 gerrit
LDAP 增加 jenkins用户
- 增加一个用户组NonInteractiveUsers
- 增加一个用户jenkins,用户组为NonInteractiveUsers
配置shh
- shell 终端下进入gerrit用户添加ssh秘钥,配置时给其配置密码123456
su - jenkins [jenkins@CoderSweet ~]$ ssh-keygen -C jenkins@121.51.39.239 Generating public/private rsa key pair. Enter file in which to save the key (/home/jenkins/.ssh/id_rsa): /home/jenkins/.ssh/id_rsa already exists. Overwrite (y/n)? [jenkins@CoderSweet ~]$ ssh-keygen -C jenkins@121.51.39.239 Generating public/private rsa key pair. Enter file in which to save the key (/home/jenkins/.ssh/id_rsa): /home/jenkins/.ssh/id_rsa already exists. Overwrite (y/n)? y Enter passphrase (empty for no passphrase):123456 Enter same passphrase again:123456 Your identification has been saved in /home/jenkins/.ssh/id_rsa. Your public key has been saved in /home/jenkins/.ssh/id_rsa.pub. The key fingerprint is: SHA256:ChmnD18HlewHLrSmeK8xF9APXOgHrDST1k9XOx23x4A jenkins@121.51.39.239 The key's randomart image is: +---[RSA 2048]----+ | + oo. oo..| | *o*o= E =+| | .oo*=B o o.+| | =..=+= . ..| | =. oSoo. | | .=oo o | | .*.. | | +. | | .. | +----[SHA256]-----+ cat ~/.ssh/id_rsa.pub
- 使用 jenkins 用户登录 gerrit
添加公钥
- 用gerrit的管理员用户,将jenkins用户添加到Non-Interactive Users组下,如下:
添加jenkins用户 - 让Gerrit支持Verified标签功能
如果安装Gerrit时没有或者没有选择添加Verified标签功能[‘lable Verified’],需要自己添加。
如下是手动添加Verified标签功能的设置(由于我在安装Gerrit的时候没有选择安装Verified标签功能
[如果在安装gerrit的时候没有选择安装这个标签功能,就需要在此处手动安装下。具体可以登陆gerrit,ProjectS->list->All-Projects->Access->Edit->Add Permission 看里面是否有Verfied的选项]
需要手动添加,步骤如下:
gerrit管理员用户使用git
用gerrit管理员账号登录Gerrit[root@weizb-3 ~]# git clone ssh://admin@121.51.39.239:29418/All-Projects && scp -p -P 29418 admin@121.51.39.239:hooks/commit-msg All-Projects/.git/hooks/ Cloning into 'All-Projects'... remote: Counting objects: 45, done remote: Finding sources: 100% (45/45) Receiving objects: 100% (45/45), 11.15 KiB | 0 bytes/s, done. Resolving deltas: 100% (3/3), done. remote: Total 45 (delta 3), reused 12 (delta 3) Note: checking out 'abaa7eede2c6a5f962ac5f81fcf6d7e96287b1a2'. [root@weizb-3 ~]# cd All-Projects/ [root@weizb-3 All-Projects]# ll total 8 -rw-r--r-- 1 root root 392 Aug 7 17:29 groups -rw-r--r-- 1 root root 2546 Aug 7 17:29 project.config [root@weizb-3 All-Projects]# [root@weizb-3 All-Projects]# vim project.config [label "Verified"] function = MaxWithBlock value = -2 Fails value = -1 Fails value = 0 No score value = +1 Verified value = +2 Approved defaultValue = 0 [root@weizb-3 All-Projects]# git commit -a -m 'Updated permissions' [detached HEAD 4b8f2e9] Updated permissions 1 file changed, 8 insertions(+), 8 deletions(-) [root@weizb-3 All-Projects]# git push origin HEAD:refs/meta/config Counting objects: 5, done. Delta compression using up to 4 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 432 bytes | 0 bytes/s, done. Total 3 (delta 1), reused 1 (delta 0) remote: Resolving deltas: 100% (1/1) remote: Processing changes: refs: 1, done To ssh://admin@172.20.149.180:29418/All-Projects abaa7ee..4b8f2e9 HEAD -> refs/meta/config [root@weizb-3 All-Projects]#
现在提交的Review请求只有Code Rivew审核,我们要求的是需要Jenkins的Verified和Code Review双重保障,在 Projects 的 Access 栏里,针对 Reference: refs/heads/ 项添加 Verified 功能,如下如下:
Projects -> List -> All-Projects
Projects -> Access -> Edit -> 找到 Reference: refs/heads/* 项 -> Add Permission -> Label Verified -> Group Name 里输入 Non-Interactive Users -> 回车 或者 点击Add 按钮 -> 在最下面点击 Save Changes 保存更改。
(注意:提前把jenkins用户添加到Non-Interactive Users组内)
jenkins 添加 gerrit 插件
在“系统管理”->“插件管理"->”可选插件"->搜索下面三个插件进行安装,如下:
然后点击 install without restart
匹配 gerrit plugin
-
进入系统管理,拉倒最下面可以看到下述,点击
-
添加 server
-
名称随意, type点击default cofig,然后点击create
-
然后点击高级,进行如下配置
然后可以测试下连接
5. 保存完毕后,点击红按钮,重启checkgerrit服务器,保证状态正常
配置smtp邮箱
- 点击系统管理-》系统配置,输入SMTP服务器,如果是qq,则输入smtp.qq.com,然后点击高级
密码填写的是smtp授权码,勾选ssl协议
然后可以测试一下,输入一个邮箱,然后点击test,如果成功则会相应收到一封邮件,且web显示successful.
jenkins 构建任务对接gerrit
- gerrit 上面新建一个项目 testJenkins
- 在jenkins上新建任务
2. 输入任务名称,构建自由风格软件项目,点击确认
3. 源码管理选择Git,URL 里面输入http://121.51.39.239:8080/testJenkins.git
4. 构建触发器,选择Gerrit event,添加服务器,选择配置gerrit plugin中配置的gerritCheck
5. gerrit trigger 中想左边选择用户名,右边选择master
5. 构建中可以输入一些shell脚本
6. 然后保存
7. 使用git, 在本地添加commit内容后,推送到gerritgit push origin master:refs/for/master
- jenkins上面可以看到构建信息
- gerrit上面可以看到jenkins认证信息
更多推荐
所有评论(0)