Jenkins基础介绍以及docker安装Jenkins

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.hqwc.cn/news/13748.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于simulink仿真车道偏离警告系统(附源码)

一、前言 此示例演示如何在视频序列中检测和跟踪道路车道标记,并在驾驶员穿过车道时通知驾驶员。该示例说明了如何使用霍夫变换、霍夫线和卡尔曼滤波器模块来创建线检测和跟踪算法。该示例使用以下步骤实现此算法:1) 检测当前视频帧中的车道…

Zabbix 6.0 介绍及部署

目录 一、Zabbix 6.0 介绍1. 简介2. **利用一个优秀的监控软件带来的好处**3. **zabbix 6.0 的功能组件**4.zabbix 监控原理 二、Zabbix 6.0 部署 一、Zabbix 6.0 介绍 1. 简介 Zabbix 是由 Alexei Vladishev 创建,目前是由 Zabbix SIA 在持续开发和提供支持。zab…

python 实现简易的学员管理系统

文章目录 前言基本思路需求实现1.实现菜单的功能2.提示用户输入需要进行的操作,并执行相关操作3.具体函数功能的实现增加学员信息显示所有学员信息删除学员信息修改学员信息查询学员信息 整体代码展示 前言 前面我们已经学习了 python 的输入输出、条件语句、循环、…

Redis - 一篇讲解根据 Key 前缀统计分析内存占用

问题描述 今天遇到一个 Redis 内存打挂了的问题,想看看哪个前缀 Key 占用内存比较大?! 原因分析 我们都知道如果直接用 Keys 参数去做统计很危险,而且也只能统计数量,当然也可以排序去前几名的占用内存 Key 对应的大…

逆转乾坤,反转字符串

本篇博客会讲解力扣“344. 反转字符串”的解题思路,这是题目链接。 这是一道经典题目了。解题思路是:双下标,left指向最左边的字符,right指向最右边的字符,交换2个字符,left向右挪动一格,right向…

细谈容器化技术实现原理--以Docker为例

目录 一、Docker解决了什么 二、容器的发展过程 三、容器基础 3.1. 容器实现的原理: ⚠️原理详解: 3.1.1. Namespace 3.1.2. Cgroups 3.1.3. chroot 四、Volume 4.1. Docker是如何做到把一个宿主机上的目录或者文件,挂载到容器里面…

StarRocks--被 Databricks CEO 提及的数据库

Databricks 介绍 Databricks是一家美国的大数据独角兽公司,由 Apache Spark 的创建者所创立。Databricks 开源了 Delta Lake--基于 Apache Spark 的下一代数据湖存储引擎。Delta Lake 是目前市面上主流的数据湖存储引擎之一,与 Apache Hudi 和 Apache Ic…

MySQL入门必备:Linux中部署MySQL环境的四种方式详解

目录 一、仓库安装 二、本地安装 三、Docker中安装 四、源码安装 一、仓库安装 首先需要下载mysql软件包: 1、进入MySQL官网 2、进入MySQL社区版下载 3、使用yum方式下载MySQL 4、下载对应版本的软件包 5、这里可以不登录直接下载软件包 6、复制下载链接 7、然…

122.将实战网页部署到Netlify

● 本章我们将网站部署到Netlify ● 首先先点击右上角注册一个账号 ● 注册完成之后,点击sites,将我们的网站文件夹拖入 ● 上传成功 ● 之后就可以正常访问啦 ● 我们也可以修改我们的站点名称,让他更加好记

综合评价算法 | Matlab实现基于CRITIC法的综合评价算法

文章目录 效果一览文章概述研究内容源码设计参考资料效果一览 文章概述 综合评价算法 | Matlab实现基于CRITIC法的综合评价算法 研究内容 CRITIC法是一种比熵权法和标准离差法更好的客观赋权法。它是基于评价指标的对比强度和指标之间的冲突性来综合衡量指标的客观权重。考虑指…

Vue3使用echarts仪表盘(gauge)

Documentation - Apache ECharts 可自定义设置以下属性 仪表盘数据源(gaugeData),类型:Gauge[],必传,默认 []容器宽度(width),类型:number | string&#x…

web前端总结(一)HTML标签

1.语法结构&#xff1a; <标签 属性 “值”>内容</标签> <p align "center">标签内容</P> 2.标签 1.标题标签&#xff1a; **标题标签 <h1> - <h6>&#xff08;重要&#xff09;** 为了使网页更具有语义化&#xff0c;我们…