Jenkins

本文详细介绍了Jenkins的安装过程,包括通过web界面配置、安装插件、创建用户及权限设置。此外,还讲解了如何结合Gitlab构建持续集成环境,以及Jenkins主从配置,实现分布式构建。通过实例展示了Jenkins在自动化构建、测试和部署中的关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jenkins的安装

[root@localhost ~]# wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo #下载Jenkins的yum源
[root@localhost ~]# rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key #导入密钥
[root@localhost ~]# yum -y install jenkins
[root@localhost ~]# systemctl start jenkins #启动Jenkins
[root@localhost ~]# netstat -anput | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      16860/java
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0

访问http://192.168.10.40:8080(本机ip)
在这里插入图片描述

[root@localhost ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
ac8d6a079c894fa4bbf4b7562e499d09  #复制这串密码

粘贴刚刚复制的密码,然后登陆
在这里插入图片描述
安装插件:
在这里插入图片描述
等待它全部安好
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

安装好Jenkins之后 首先需要进行全局配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
安装插件
方法一:本地下载
在这里插入图片描述
在这里插入图片描述
等待安装即可
在这里插入图片描述
如果一直卡住可以返回首页 到插件管理中点击已安装的插件搜索gitlab进行查看插件是否安装成功
在这里插入图片描述
方法二:去Jenkins官网上面下载自己想要的插件
在这里插入图片描述
在这里插入图片描述
等待安装
在这里插入图片描述
安装成功之后 可以去已安装进行查看
在这里插入图片描述
新建用户
在这里插入图片描述

在这里插入图片描述
同样的方法再创建另一个用户userb
在这里插入图片描述
在这里插入图片描述
设置用户的权限

方法一:全局设置权限
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击保存

然后注销当前用户,分别登陆usera、userb,admin;可以发现usera只有读的权限,userb没有任何权限,admin拥有所有权限
在这里插入图片描述
方法二:基于角色的用户权限 需要安装插件
在这里插入图片描述
在这里插入图片描述
等待安装即可
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
会出现一个单独的管理角色的标签

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注销用户,登陆userb用户进行验证,会发现只有查看的权限

先创建了developer角色,角色拥有读的权限,把userb分配给了这个角色,所以userb有读的权限

方法三: 基于任务的权限控制

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后以同样的方法再创建出webA和webB

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
登录userb进行查看
在这里插入图片描述

Jenkins

代码自动化
Jenkins是一个可扩展的持续集成引擎。

主要用于
持续、自动地构建/测试软件项目。
监控一些定时执行的任务。

Jenkins拥有的特性包括:
易于安装-只要把jenkins.war部署到servlet容器,不需要数据库支持。
易于配置-所有配置都是通过其提供的web界面实现。
集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知。
生成JUnit/TestNG测试报告。
分布式构建支持Jenkins能够让多台计算机一起构建/测试。
文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar
等。
插件支持:支持扩展插件,你可以开发适合自己团队使用的工具。

概念:

jenkins是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。同时 Jenkins 能实时监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。
Jenkins可以构建一个自动化的持续集成环境可以使用它来“自动化”编译、打包、分发部署应用,它兼容ant、maven、gradle等多种第三方构建工具,同时与svn、git能无缝集成,也支持直接与知名源代码托管网站,如github、bitbucket直接集成。
在这里插入图片描述

原理:

在这里插入图片描述
这里是选择Gitlab作为git server。Gitlab的功能和Github差不多,但是是开源的,可以用来搭建私有git server,也提供非常强大的web GUI,比如开发者互相review源代码的时候就会很方便。
系统的工作流程大概分为以下几步:
1> 开发者将新版本push到git server (Gitlab)。
2> Gitlab随后触发jenkins master结点进行一次build。(通过web hook或者定时检测)
3> jenkins master结点将这个build任务分配给若干个注册的slave结点中的一个,这个slave结点根据一个事先设置好的脚本进行build。这个脚本可以做的事情很多,比如编译,测试,生成测试报告等等。这些原本需要手动完成的任务都可以交给jenkins来做。
4> 我们在build中要进行编译,这里使用了分布式编译器distcc来加快编译速度。
jenkins的工作原理是先将源代码从gitlab中拷贝一份到本地,然后根据设置的脚本进行build。我们可以看出,整个系统的关键就是那个build脚本,用来告诉jenkins在一次集成中需要执行的任务。
不过我之后是用的Github作为git server。但其实差不多。

gitlab+Jenkins可持续集成环境

环境:

主机ip
gitlab192.168.10.50
Jenkins192.168.10.40

gitlab主机:

在这里插入图片描述
在这里插入图片描述
复制以下的路径
在这里插入图片描述

Jenkins主机:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
注:这儿会报错是因为gitlab仓库是私有的,需要进行密钥验证

gitlab主机: 查看密钥并复制下来

[root@localhost ~]# cat /root/.ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAr354m/BKyzsfSlwNHst3XVbBWRlbAdFwqodDRyv03YtM2kvl
tGmpXjYUqSFHphUSYT8/qxv01PSWOAIUzwhLMJnJDnKvXsXGMfYkjUii1EThyOPe
gFFkoUh9OFqXL3Fqw0SbW2oVCFsFzN5Ej/XV3ffFPBNoc0SmE3pUG0JooUTLSdaW
F+O495+OWMG9/MFsPBEtXyn57LX/PiinfhiQEfOvg3dhloqSfHrTjh/OIMKcCcTZ
FAviRjMvNj+ZgMYirB8t1d+E6Tzz7w4pGOBWFVVusdjv5SfCvifxMo22p3IzYM/l
JyYZsSwjH1hvguiaxI6+hyW1MvNepTkMFcBpIwIDAQABAoIBAGYB731E6VTEYuXI
J+A0iId6vBxcPqgJ46FbymF+TXDRXbSt1TFPEaGvccb1jz4clXhtWUbOkzuNiBu6
KfpFad8wJMv/IazG7PNxjcGJ7QvRliQ9P8H6jbGp/w9YqPRsypACOwOh3+PhdLem
otfDH7NMKBtJdLc7ugUsX+MQcNz7t3r13VtL5XbT4WuHfokiitOyKCwdXz023PnK
OY46sfQ0/xwQzGGXmjOOuCU2Wqr/wg1lam1pn8LkEVoqQ4vwczQ9JwqwtGSz5hCb
zBFy5TZ2+eg+HCNGs4DFraefCSfOHj9EQ3T2x7qZDvLao9Af5+YYRkdgeU4nIlc+
n99/f6ECgYEA1e7fwBxW1iWR0m91eG5WkExP4hVtoMnZuBTRi9nBz3KvUXr/3ssH
xNbZOMOHK6drU45zlCxt1sygz5TGZR2oacaGGowkx4mTlOTlaeWEhwYFZvMh8cIQ
2OtewDVLwgBYcOOMX1k7AVC20GiVhxVCzm7h+w5NSBUN4cmPaVnEy7sCgYEA0gCf
Op3nAzGUSNoJcgbIYMDa0YCduMY94ZMDrJSgFQyEmo/JKJf0G4o7xLncCgzjH7IX
P3uRwJuyvIr9fMM3GoKX4kx1pguJM///xp/zbQsCqiM458os5Y2IZ9S65qRj+jse
tFchUp5OTv3S3uTW3nqwS786WULT6vI1jnqPHbkCgYEA1GbyqB566OssOK6JByUl
tObPeTylN7qw+19QHXX6Qykuf8uLN3yFHh3iVcVr8x+qI6+PeVITS+ymzPJ9d+9W
Qo7knn7+FU62xGHulJFYX2bO/kPvM8TmTTiDPnqr2NXW+V4zBIfnWYr1tz3fF9s4
FRVqMIUmnaapvb8NMB/8j/kCgYBIWcSCGnLDq+otq0kDywhwJSF+enRce5hIRjFG
3THF7rkk0xL39Fo6vsZWwb3ojIYXnnDaA0W0+S98O9qXiF5MuN+BLNx/p4vOqY1C
rkrcr6VsXpQ1b3dGYxuywhzeZ5a2WHX8peQqJbZPCq4C8w6AOf7RKgH9TMPcNzRy
cRErqQKBgQCXAvc9nAFFLuQD5UiU5GgXSc5KyAUUxN4u/E1DKn/rKmKnwk6hiyjm
JGo0uHPY4S/s83C/ePX7qlJM0/zp8fsFQF+DE6eZxRx9ZAyXeI2PO95IBrK12Dqf
Ib5gTtXjD6YvkNSz/HyqRvdZRyCb+rVz6yjW3mOevlCQXhsrL3GyuQ==
-----END RSA PRIVATE KEY-----

Jenkins主机:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
失败的时候发送邮件
在这里插入图片描述
在这里插入图片描述
成功的时候发送邮箱

在这里插入图片描述

在这里插入图片描述
配置触发器

gitlab主机:
在这里插入图片描述
在这里插入图片描述
配置可以允许本地触发
在这里插入图片描述
Jenkins主机:
在这里插入图片描述
在这里插入图片描述
gitlab主机:
在这里插入图片描述
在这里插入图片描述
回顾之前所做的:
gitlab 项目创建好;Jenkins上创建好项目;git从gitlab上拉代码 clean package(清空并打包) 发邮件;gitlab允许触发本地,支持触发器;Jenkins才能有路径,路径就是gitlab上传代码后连接Jenkins上面的路径

回到Jenkins主机:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
gitlab主机:

在这里插入图片描述
在这里插入图片描述
验证 试着去上传代码 看Jenkins是否能自动构建
在这里插入图片描述
构建成功
在这里插入图片描述

Jenkins主从

环境: 准备两台主机,安装Jenkins环境和jdk、gitlab、maven

主机ip
Jenkins主192.168.2.20
Jenkins从192.168.2.30

主对从做免密登录

[root@localhost ~]# ssh-keygen
[root@localhost ~]# ssh-copy-id  root@192.168.2.30
[root@localhost ~]# ssh root@192.168.2.30
Last login: Wed Sep 23 19:34:12 2020 from 192.168.2.20
[root@localhost ~]# exit
登出
Connection to 192.168.2.30 closed.

主:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
主从就成功了

如何使用主节点来让从节点构建数据
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
保存

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值