Jenkins基础介绍以及docker安装Jenkins

news2024/11/26 18:27:52

Jenkins基础介绍以及docker安装Jenkins

什么是Jenkins?

Jenkins是一个可扩展的持续集成引擎
持续集成就是通常说的CI(Continues Integration)
每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。

白话:大家在公司做测试时,很多时候可能是一个项目有几十个服务功能,每个服务或者几个服务可能被不同的开发人员维护和编写代码,我们测试对应的也可能只验证和测试其中的某几个模块功能,这个时候总不能每次改一个bug,就同时将整个项目重启,所以我们需要持续的根据不同服务来对服务进行发包和集成,其中Jenkins的服务集成以及测试环境的代码合并都是由测试人员进行代码合并以及服务的发送。

Jenkins用处

  1. 持续、自动地构建、测试软件项目。
  2. 监控一些定时执行的任务。

Jenkins特性

  • 易于安装。只要把jenkins.war包部署到servlet容器即可,不需要数据库的支持,也可以通过docker容器化技术进行安装部署。
  • 易于配置。所有的配置都是通过其提供的 web 界面实现得。
  • 集成 RSS/E-mail 通过 RSS 发布构建结果或当构建完成时通过 E-mail 通知相关人员以及负责人。
  • 插件支持。支持扩展插件,你可以开发适合自己团队使用的工具。

部署:
当自动化检查和测试成功完成,软件构建的周期中可能也需要一些额外的任务,诸如生成文档、打包软件、部署构件到一个运行环境或者软件仓库。这样,构件才能更迅速地提供给用户使用。

部署一个CI系统需要的最低要求是,一个可获取的源代码的仓库(gitee、github等),一个包含构建脚本的项目。

下图概括了CI系统的基本结构:
在这里插入图片描述

简单的来看
在这里插入图片描述

该系统的各个组成部分是按如下顺序来发挥作用的:

  1. 开发提交代码到源码仓库中(一般会指定一个测试环境的分支)
  2. CI系统会为每一个项目创建了一个单独的工作区。当预设或请求一次新的构建时,它将把源代码仓库的源码存放到对应的工作区。
  3. CI系统会在对应的工作区内执行构建过程。
  4. 构建完成后,CI系统会在一个新的构件中执行定义的一套测试。完成后触发通知(Email,RSS等)给相关的当事人。(看配置可以不进行发送)
  5. 如果构建成功,这个构件会被打包并转移到一个部署目标(如应用服务器)或存储为软件仓库中的一个新版本。软件仓库可以是CI系统的一部分,也可以是一个外部的仓库,诸如一个文件服务器或者像 Java.net 、 SourceForge 之类的网站。
  6. CI系统通常会根据请求发起相应的操作,诸如即时构建、生成报告,或者检索一些构建好的构件。(简单来说就是查询构建过程中可能产生的数据信息,比如启动日志或者服务等)

Jenkins的优点

1、是所有CI产品中在安装和配置上最简单的。

2、基于 Web 访问,用户界面非常友好、直观和灵活,在许多情况下,还提供了AJAX的即时反馈。

3、 Jenkins 是基于 Java 开发的,但它不仅限于构建基于 Java 的软件。

4、Jenkins 拥有大量的插件。这些插件极大的扩展了 Jenkins 的功能;它们都是开源的,而且它们可以直接通过 web 界面来进行安装与管理。

5、Jenkins 一切配置都可以在 web 界面上完成。有些配置如MAVEN_HOME和Email,只需要配置一次,所有的项目就都能用。当然也可以通过修改XML进行配置。

6、每次 build 的结果构件都被很好的自动管理,无需任何配置就可以方便的浏览下载。(即查看历史构建信息)

原文链接:https://blog.csdn.net/kami_ochin_akane/article/details/109779152

Jenkins安装

不采用容器化安装方式

大家看大佬的博客
https://blog.csdn.net/ZHANGLIZENG/article/details/123653860

采用容器化安装方式

假设你还未安装docker,或者对docker还不熟悉可以看洒家关于docker专栏的文章,传送门☚

一、下载Jenkins

docker pull jenkins/jenkins
[root@sulong ~]# docker pull jenkins/jenkins
Using default tag: latest
latest: Pulling from jenkins/jenkins
93c2d578e421: Pull complete 
77b97c2ff987: Pull complete 
1536c617ae13: Pull complete 
24565670b535: Pull complete 
3a5e4d5386c8: Pull complete 
7fdd59a5bf10: Pull complete 
a410f8c85e5b: Pull complete 
422a17265fab: Pull complete 
d64be9b34ff6: Pull complete 
6f269ecf918f: Pull complete 
7442d1d88c7b: Pull complete 
295549a93c31: Pull complete 
d29ce47fca97: Pull complete 
Digest: sha256:c9a1bba477d3b9f29c27337d7d537c0926168ab8073b07067a42dda1a35b07f4
Status: Downloaded newer image for jenkins/jenkins:latest
docker.io/jenkins/jenkins:latest
[root@sulong ~]# 

二、创建jenkins挂载目录并授予权限

//创建目录
mkdir -p /var/jenkins_home
//授权权限
chmod 777 /var/jenkins_home
[root@sulong ~]# mkdir -p /var/jenkins_home
[root@sulong ~]# chmod 777 /var/jenkins_home
[root@sulong ~]# 

三、启动Jenkins容器

-d 后台运行镜像

-p 10240:8080 将镜像的8080端口映射到服务器的10240端口。

-p 10241:50000 将镜像的50000端口映射到服务器的10241端口

-v /var/jenkins_mount:/var/jenkins_home /var/jenkins_home目录为容器jenkins工作目录,我们将硬盘上的一个目录挂载到这个位置,方便后续更新镜像后继续使用原来的工作目录。这里我们设置的就是上面我们创建的 /var/jenkins_home目录

-v /etc/localtime:/etc/localtime让容器使用和服务器同样的时间设置。
–name myjenkins 给容器起一个别名

docker run -d -p 10240:8080 -p 10241:50000 -v /var/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime --name myjenkins jenkins/jenkins
[root@sulong ~]# docker run -d -p 10240:8080 -p 10241:50000 -v /var/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime --name myjenkins jenkins/jenkins
a9a348bfdb43ad68639312035880e66bbb878d6bd189c252c20334c207fefe5f

如果下面出现一串说明是可以了

四、验证容器是否启动

docker ps | grep jenkins
[root@sulong ~]# docker ps | grep jenkins
a9a348bfdb43   jenkins/jenkins   "/usr/bin/tini -- /u…"   2 minutes ago   Up 2 minutes   0.0.0.0:10240->8080/tcp, :::10240->8080/tcp, 0.0.0.0:10241->50000/tcp, :::10241->50000/tcp   myjenkins
[root@sulong ~]# 

五、浏览器验证,访问Jenkins页面

这里需要分两种情况,
一、如果你使用的是本地虚拟机的方式则:
输入http://192.168.XX.XX:10240
IP是服务器IP地址,端口号是我们刚刚设置的端口号
二、如果你和一样使用的属于自己的服务器
则输入对应的ip加端口进行访问,并将10240端口配置为开放端口
在这里插入图片描述
在这里插入图片描述

六、获取管理员密码

vim /var/jenkins_home/secrets/initialAdminPassword
[root@sulong ~]# cat /var/jenkins_home/secrets/initialAdminPassword
cfea63003d9a417784769135dd0d67fa
[root@sulong ~]# 

获得密码后复制粘贴到浏览器

在这里插入图片描述
我直接来一手推荐,后面需要其他奇巧淫技的插件再寻找安装

在这里插入图片描述

插件地址:https://plugins.jenkins.io/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/722402.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

同一局域网内IP 192.168.1.10 和 IP 10.10.10.8 可以互相访问吗?

同一局域网内IP 192.168.1.10 和 IP 10.10.10.8 可以互相访问吗? 1、网上邻居的方式: 鼠标点击 我的电脑 属性 计算机名,查看一下 计算机名(这个可以点击更改,自己设定和更改) 查看一下工作组,一…

基于node.js中的serialport模块实现无线传感网上位机功能

半个月前的无线传感网课设上位机的实现遇到了很多困难,特写此文章给有需要的朋友一些帮助,欢迎私信探讨 文章目录 前言一、node.js中的serialport模块二、express框架三、echarts实现拓扑图四、实现下行数据五、成果展示总结 前言 本文所要实现的功能以…

【React】next+antd报错:Module not found: Can‘t resolve ‘antd/es/content‘

Antd Next手册:https://ant.design/docs/react/use-with-next-cn 报错场景 根据官方手册进行项目创建 yarn create next-app antd-demoyarn add antd 得到以下环境: EnvironmentInfoantd5.6.4next13.4.8react18.2.0 安装完依赖后,运行y…

java方法详解

1. 方法概述 1.1 什么是方法 方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集 注意: 方法必须先创建才可以使用,该过程称为方法定义方法创建后并不是直接运行的,需要手动…

日本 NFT 项目概览与特点总结

日本的 NFT 市场 日本的 NFT 市场起源于与国内动漫和娱乐偶像的合作,重点关注本土文化,文化成为日本 NFT 项目的重要基石。 关键要点: 日本的 NFT 产业具有三个特点:广泛的知识产权(IP)、低 FUD 水平以及…

Ka/Ks介绍和分析

什么是Ka/Ks? 在遗传学中,Ka/Ks表示的是两个蛋白编码基因的非同义替换率(Ka)和同义替换率(Ks)之间的比例。这个比例可以判断是否有选择压力作用于这个蛋白质编码基因。 如果你手头有两个不同物种的同一个基因的序列…

JavaWeb项目-超市订单管理系统【Day02】

密码修改 1、编写接口方法和mybatis的SQL映射文件 Mybatis配置多参数SQL语句 当我们的SQL语句中有多个参数的时候,需要设置每个参数名对应的接口参数,不然会报错: Parameter ‘id’ not found. Available parameters are [argl, argg, par…

【设计模式】第十二章:观察者模式详解及应用案例

系列文章 【设计模式】七大设计原则 【设计模式】第一章:单例模式 【设计模式】第二章:工厂模式 【设计模式】第三章:建造者模式 【设计模式】第四章:原型模式 【设计模式】第五章:适配器模式 【设计模式】第六章&…

chatGPT如何开启 Browsing 功能,实现即时联网查询?

Openai 为每一个 chatGPT Plus 用户都开放了 Browsing 和 plugins 功能。 前者可以在 ChatGPT 觉得有必要的时候(比如你问它今天的新闻),自动联网查询,后者是第三方开发者开发的插件,数量繁多,可以解决各种…

Git 常用操作总结

版本控制系统(VCS)是管理文件和目录所做的更改的工具,每一次提交便记录下目录及其文件的内容,以及较上一版本的更改。通过这样去跟踪项目的更改过程,方便与他人进行协作,或者撤销不想要的更改以回退到此前的…

DR模式部署LVS负载均衡集群

目录 一、配置负载调度器 1.配置虚拟 IP 地址(VIP:192.168.146.180) 2.调整 proc 响应参数 3. 配置负载分配策略 ​编辑二、部署共享存储(NFS服务器:192.168.146.20) 三、配置节点服务器 1.配置虚拟…

解决vue中mapbox地图显示一半的问题

解决vue中mapbox地图显示一半的问题 问题描述: 在vue中创建mapbox地图,地图只显示一般,查看浏览器开发者工具。发现将canvas.mapboxgl-canvas 的position:absolute去掉就解决了 。 代码修改:获取到canvas.mapboxgl-canvas,并修改…

zookeeper第一课-Zookeeper特性与节点数据类型详解

1、Zookeeper特性与节点数据类型详解 ZooKeeper 是一个开源的分布式协调框架,是Apache Hadoop 的一个子项目,主要用来解决分布式集群中应用系统的一致性问题。 Zookeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一…

在Linux中部署ELK架构

ELK(ElasticSearch分布式搜索引擎、Logstash数据收集处理引擎和Kibana可视化化平台)是在大型后端架构中,一个标准的数据采集方案。 在公网IP为x.x.x.x的服务器上部署Elasticsearch LogstashfilebeatredisKibana架构。这种架构先通过Logstash…

高并发场景:redis+lua防重校验

大家平时在做有并发量下单的项目时,代码层面基本上就分为这么几个步骤:参数校验--->防重校验--->库存校验扣减--->下单成功--->支付。 最近公司有个商城项目说要30分钟达到1亿的并发量。当时听到突然猛了一下。真是牛逼克拉斯呀。 不过该说…

apache php mysql python 环境部署与离线安装deb包

文章目录 1.背景介绍2. 主要涉及操作2.1 安装系统:2.2 apache mysql php安装2.3 配置2.4 python相关库安装 3. 操作记录3.1 软件安装3.2 读取文件内容后进行文件内容抽取3.3 执行以上的sh脚本3.4 所学3.5 打包发送 4. 参考文献 1.背景介绍 使用的系统为ubuntu18.04…

密码学学习笔记(四):Authenticated Encryption - 认证加密

加密数据的最新方法是使用一种称为一体式结构的认证加密算法,该算法也称为有附加数据的认证加密。从之前的博客中,我们看到在特定的操作模式中使用的分组密码,如CBC、OFB、CFB、CTR,提供了IND-CPA安全性。 但是IND-CCA安全性呢&a…

电脑卡顿甚至崩溃?那重置系统吧

我们平时用电脑,最怕遇到蓝屏、死机、报错,等等问题。有时还会碰到些奇奇怪怪的系统问题 文章目录 问题场景:解决方案:一、重启电脑二、移除外接设备三、系统还原1、设置系统还原2、如何进行系统还原3、系统还原失败怎么办 四、卸…

有源差分探头的电压限定和检查步骤

为了使传统示波器能够显示和测试高共模电压的电路波形,有源差分探头对示波器测量性能延伸到了电子功率变换器、 逆变器、 电机的速度控制、 开关电源和许多应用程序的测试。 差分探头外观构成: A-输出线:连接示波器的 BNC 输出连接头和辅助性…

【操作系统】c语言--进程调度算法(FCFS和SPN)

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…