在上一篇博客中,我们主要介绍了DevOps理念以及java环境和jenkins的安装,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13805666.html;今天我们主要来看看jenkins常用插件的安装、配置使用;

  我们知道在安装jenkins的过程中,激活jenkins后,首先是让我们安装一些插件,我们选择的是推荐插件;推荐插件一般都是很常用的基础插件,也是我们使用jenkins的必须品,但这样安装好的jenkins在很多功能上都达不到我们使用的需求,于是我们需要额外安装其他插件来丰富jenkins的功能;

  手动下载安装gitlab插件

[root@node04 ~]# cd /var/lib/jenkins/plugins/
[root@node04 plugins]# wget http://updates.jenkins-ci.org/latest/gitlab-plugin.hpi
--2020-10-13 20:04:19-- http://updates.jenkins-ci.org/latest/gitlab-plugin.hpi
Resolving updates.jenkins-ci.org (updates.jenkins-ci.org)... 52.202.51.185
Connecting to updates.jenkins-ci.org (updates.jenkins-ci.org)|52.202.51.185|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://updates.jenkins-ci.org/download/plugins/gitlab-plugin/1.5.13/gitlab-plugin.hpi [following]
--2020-10-13 20:04:20-- http://updates.jenkins-ci.org/download/plugins/gitlab-plugin/1.5.13/gitlab-plugin.hpi
Reusing existing connection to updates.jenkins-ci.org:80.
HTTP request sent, awaiting response... 302 Found
Location: https://get.jenkins.io/plugins/gitlab-plugin/1.5.13/gitlab-plugin.hpi [following]
--2020-10-13 20:04:21-- https://get.jenkins.io/plugins/gitlab-plugin/1.5.13/gitlab-plugin.hpi
Resolving get.jenkins.io (get.jenkins.io)... 52.167.253.43
Connecting to get.jenkins.io (get.jenkins.io)|52.167.253.43|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/gitlab-plugin/1.5.13/gitlab-plugin.hpi [following]
--2020-10-13 20:04:22-- https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/gitlab-plugin/1.5.13/gitlab-plugin.hpi
Resolving mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)... 101.6.8.193, 2402:f000:1:408:8100::1
Connecting to mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)|101.6.8.193|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 8456411 (8.1M) [application/octet-stream]
Saving to: ‘gitlab-plugin.hpi’ 100%[==================================================================>] 8,456,411 2.21MB/s in 3.7s 2020-10-13 20:04:27 (2.21 MB/s) - ‘gitlab-plugin.hpi’ saved [8456411/8456411] [root@node04 plugins]# ll gitlab-plugin.hpi
-rw-r--r-- 1 root root 8456411 Sep 12 2019 gitlab-plugin.hpi
[root@node04 plugins]#

  提示:对于jenkins来说,每一个插件就有一种功能,我们需要用到某些功能,就必须安装对应的插件;安装插件我们可以去http://updates.jenkins-ci.org/download/plugins/这个网站下载,把下载好的插件放到jenkins的数据目录里有个plugins目录下即可;

  重启jenkins

[root@node04 plugins]# systemctl restart jenkins
[root@node04 plugins]# ls -d gitlab-plugin*
gitlab-plugin gitlab-plugin.hpi
[root@node04 plugins]# ll gitlab-plugin
total 4
drwxr-xr-x 2 root root 4096 Oct 13 20:06 help
drwxr-xr-x 3 root root 19 Oct 13 20:06 images
drwxr-xr-x 3 root root 38 Oct 13 20:06 META-INF
drwxr-xr-x 3 root root 17 Oct 13 20:06 WEB-INF
[root@node04 plugins]#

  提示:可以看到重启jenkins后,对应下载的.hpi包就自动解压;

  验证:登录jenkins,查看对应插件是否已经安装生效?

  提示:可以看到gitlab plugin插件已经在安装好了;以上是手动安装插件的方式,但通常如果一个插件有依赖其他插件,这种手动的安装方式就显得格外麻烦,因为我们要手动解决插件和插件间的依赖关系;所以通常手动安装插件的方式很少;

  使用jenkins web图像界面安装插件

  提示:以上我们要安装role base插件,我们需要切换到可选插件上,然后搜索关键字,然后把要安装的插件打勾,然后点击下面的直接安装;

  提示:这里显示安装已经完成,我们需要点击安装完成后重启,此时jenkins就会重启,重启后的插件就生效了;

  提示:当然我们也可以手动到命令行界面重启jenkins;

  验证:刷新web界面,去插件管理查看对应插件是否安装好了?

  提示:可以看到对应插件已经在已安装的列表中了;说明插件安装好了;以上就是jenkins的插件安装方法;

  创建用户

  提示:返回首页,点击系统管理,然后找到管理用户;

  提示:点击新建用户,填写对应用户的用户名,密码,邮箱,然后点击新建用户;

  提示:此时用户列表中就有两个用户;

  验证:登录test帐号,看看是否可以登录?

  提示:可以看到test用户是可以正常登录,并且拥有和管理员一样的界面;这意味着我们刚才创建的test用户是一个管理员;

  更改授权策略

  提示:点击系统设置,找到全局安全配置里,可以看到默认授权策略是登录用户可以做任何事情,这也是我们刚才新建用户test,登录进去看到和管理员一样的界面的原因;

  更改授权策略为role base

  提示:选择role base 然后点击应用就好了;

  给test用户授权

  提示:更改授权策略为role base以后,返回主菜单,点击系统管理,里面就会多一个manage and assign roles的图标,我们点击它就可以来管理jenkins用户的角色和角色权限以及角色对应的用户;

  提示:首先要添加一个角色,在role to add中输入对应的角色名称,然后点击后面的add就创建好一个角色,创建好角色后,我们就可以对他做赋权,需要用到哪些权限,就在对应的格子里打勾就好;最后点击下面的保存或应用;如上,read only这个角色就是对全部有读的权限;只要关联到该角色的用户都会拥有同角色相同的权限;

  关联用户

  提示:进入分配角色里,可以看到现在多了read only这个角色;默认情况这里只看得到一个管理员帐号,对于test用户,我们要在下面输入test,然后点击添加,然后对应的test用户才会到上面的表中,然后我们就可以选择给test用户属于哪个角色,在对应的角色下面打上对勾即可;最后点击最下方的应用保存,此时对test用户角色绑定就完成了;

  验证:现在登录test用户,看看是否还和刚才登录看到的界面一样呢?

  提示:可以看到现在登录test用户就不是管理员界面了;

  jenkins 邮箱配置

  提示:打开系统管理,系统配置,默认情况这里的系统管理员邮件地址是没有的,这里我们填写一个互联网邮件地址即可;然后接着往下拖,最后有一个邮件通知;

  提示:点击开高级;这里需提前把互联网邮箱的smtp打开,打开方法很简单,不会的可以去看本人博客https://www.cnblogs.com/qiuhom-1874/p/13797199.html,这篇博客里有介绍;

  提示:填写好以上内容,我们可以先测试下我们的配置是否正确,如果正确我们会在linux_test01@126.com的邮件中收到一份测试邮件,如下,如果有问题,这里会提示我们;

  提示:如果能够正常的收到邮件,说明我们配置的邮件信息没有问题,此时就可以点击应用jenkins的邮件通知就配置好了;

  配置jenkins自动从gitlab上拉取代码到本地

  在jenkins服务器上生成ssh密钥对

[root@node04 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:afCQfhOo1+JKhgsdSYpobedmlK532Ao/UIXE0Vs073c root@node04.test.org
The key's randomart image is:
+---[RSA 2048]----+
| oo+ .o |
| o = .o |
| . * + . |
|oo.. +.* o. |
|+.ooo++ S . . E |
|...+=o + . . . |
|. o.+=+ |
| . +*= o |
| ..oo+ |
+----[SHA256]-----+
[root@node04 ~]#

  把jenkins上生成的公钥拷贝到gitlab上

  提示:把jenkins 启动用户的公钥放在gitlab上,这样再用jenkins的启动用户到指定的gitlab上克隆代码就不会在让我们输入用户名和密码了;

  测试:在jenkins 使用root 克隆gitlab上的test项目,看看是否还要输入密码?

  提示:我们复制项目的克隆地址要复制基于ssh协议对克隆地址;

  提示:第一次克隆需要输入yes确认我们连接的主机;可以看到现在用jenkins启动用户root克隆gitlab上的项目都是不需要输入用户名和密码;

  在jenkins服务器添加证书

  提示:到jenkins的系统管理-->manage credentials -->选择全局-->添加凭据;填写好上面的内容;这里的添加证书就是把刚才在放在gitlab上的公钥对应的私钥放上去;必须要和gitlab上的公钥是一对,这样才可以实现加密解密;

  添加好凭据以后,接下来我们可以添加一个项目,然后测试,看看jenkins是否能够自动从gitlab上把对应的项目拉到本地

  创建项目

  提示:这里把要克隆的项目地址复制到仓库地址栏,然后选择对应的凭证,点击保存;源码管理就配置完了;

  提示:可以看到控制台输出的日志是成功状态的;

  验证:去jenkins的保存数据的目录下,看看对应项目是否克隆下来了?

  提示:可以看到在jenkins的数据目录下有个workspace的目录下有一个和我们在jenkins上创建的任务名称同名的一个目录,里面放着我们从gitlab上拉下来的文件;说明我们配置jenkins免密从gitlab上拉去代码没有问题;后续我们就可以把这些代码经过处理,分批部署到其他服务器上了;后续怎么处理代码,怎么部署,我们可以基于jenkins的pipline脚本,也可以自己写shell脚本交给jenkins帮我们执行,以达到处理代码和部署相关操作;

持续集成工具之Jenkins使用配置的更多相关文章

  1. 持续集成工具之Jenkins

    Jenkins是一个很好的持续集成工具,不光可以帮助开发进行自动打包,自动验证升级和安装,也可以帮助测试人员定时执行测试任务,或者在开自动打包安装之后自动执行测试任务,实现打包-安装-测试一条线服务, ...

  2. 【持续集成工具】 Jenkins

    一.什么是持续集成 持续集成(CI):简单来说就是指将开发者的工作内容频繁地集成到主干中. 而持续集成工具可以将开发者频繁需要构建,编译,测试,部署等操作自动进行,为开发提供了非常大便利. 二.持续集 ...

  3. 持续集成工具之jenkins+sonarqube做代码扫描

    上一篇我们主要聊了下代码质量管理平台sonarqube的安装部署以及它的工作方式做了简单的描述和代码扫描演示:回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13 ...

  4. 持续集成工具之Jenkins安装部署

    一.DevOps理念 所谓DevOps是指development和Operations的组合,中文意思就是开发和运维的简写.devops理念主要是针对企业中的研发人员.运维人员和测试人员的工作理念,是 ...

  5. 持续集成工具之Jenkins pipline简单示例

    前文我们主要聊了下jenkins的插件安装.用户及权限管理.邮件发送.配置凭证到gitlab上拉取项目和创建普通job:回顾请参考https://www.cnblogs.com/qiuhom-1874 ...

  6. 持续集成工具TeamCity配置使用

    持续集成CI(Continuous Integration)主要包括自动化的编译.发布和测试集成,对于我们信息系统项目开发非常有用.一般开发人员机器上会搭建自己的开发环境,整个项目在服务器上会搭建测试 ...

  7. 持续集成工具Jenkins学习总结

    概述 持续集成(Continuous Integration,简称CI)是一种软件开发实践,团队开发人员每次都通过自动化的构建(编译.发布.自动化测试)来验证,从而尽早的发现集成错误.持续集成最大的优 ...

  8. 持续集成工具jenkins的使用

    jenkins类似于Hadson,是一款持续集成工具.使用jenkins完成自动化部署的表现为:当开发人员向版本库提交新的代码后,应用服务器上自动部署,用户或测试人员使用的马上就是最新的应用程序.搭建 ...

  9. 轻松搭建持续集成工具jenkins

    1.Jenkins介绍1)什么是持续集成随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Agile) 在软 ...

随机推荐

  1. 写Junit测试时用Autowired注入的类实例始终为空怎么解?

    踩坑半天多,终于在网上寻觅到了解决方案,特此分享一下. 重要前提:src/main/java下的根包名必须和src/test/main的根包名完全一致,否则就会发生死活不能注入的情况,要继续进行下面的 ...

  2. HTML模仿实现京东登录页面

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. 判断语句 、 while循环 、 for循环

    判断语句 语法结构 if 条件1: 如果条件1为真,执行语句块 elif 条件2: 如果条件2为真,执行语句块 elif 条件3: 如果条件2为真,执行语句块 elif 条件n: 如果条件n为真,执行 ...

  4. 我是怎样通过个人项目成长为高级 JavaScript 开发者的

    大道理都是能用三两句话说清的 . 在我开发人员的职业生涯中,最好的决定之一就是不再满足于只做工具的使用者. 我决定创建我自己的工具,并不是为了卖钱,而是要了解这些技术的实际工作方式,并提升我的技术技能 ...

  5. charles常用功能 request和response(简单的操作)

    先介绍一个修改request请求参数值的方法吧 第一步: 拷贝完成后还需要配置一下: 先添加一个: 然后下一步: 最后点击OK,就可以开始操作request和response数据了 先修改reques ...

  6. 初学 React native | 环境搭建(在模拟器上运行)

    我的电脑是windows 所以就以 windows上+Android 配置React native 环境 网上的安装教程非常多,我总结了一下,配置环境时出错原因主要是node java python ...

  7. Angular用户输入

    用户输入 事件绑定 使用 (event) on-event 概念 ​ 用户操作 -> DOM事件 用户操作 点击链接 按下按钮 输入文字 DOM事件 $event 类型 any 不能推测属性 可 ...

  8. 分布式系统监视zabbix讲解三之用户和用户组

    概述 Zabbix 中的所有用户都通过 Web 前端去访问 Zabbix 应用程序.并为每个用户分配唯一的登陆名和密码. 所有用户的密码都被加密并储存于 Zabbix 数据库中.用户不能使用其用户名和 ...

  9. Java并发包之Executors

    概述 Executor.ExecutorService.ScheduledExecutorService.ThreadFactory.Callable的工厂和工具类. 方法 构造一个固定线程数目的线程 ...

  10. Java中synchronized关键字理解

    好记性不如烂笔头~~ 并发编程中synchronized关键字的地位很重要,很多人都称它为重量级锁.利用synchronized实现同步的基础:Java中每一个对象都可以作为锁.具体表现为以下三种形式 ...