最火的 CI/CD 平台 Jenkins 详细搭建教程(for Linux)

news2024/11/24 5:57:31

在正式学习Jenkins之前我们需要对两个名词有一定了解,其一是DevOps,另外一个就是CI/CD。

何为DevOps?

来自wiki百科介绍

DevOps是一系列软件开发实践,强调开发人员(Dev)和测试人员(QA)及运维人员(Ops)之间的沟通合作,通过自动化流程,使得软件构建、测试、发布更加快捷、频繁和可靠。

简单来说通过DevOps可以将开发、测试、运维三个团队紧密联系在一起,能够使得项目快速迭代、缩短项目上线时间。

需要注意的是DevOps是一种理念,而不是一种技术,在实际工作中落地应用这套理念需要有相对应得技术作为支撑,而CI/CD就是作为DevOps得最佳实践技术手段。

何为CI/CD?

  • 持续集成 (Continuous integration,简称CI)

持续集成是一种开发实践,它倡导团队成员需要频繁的集成他们的工作,每次集成都通过自动化构建(包括编译、构建、自动化测试)来验证,从而尽快地发现集成中的错误。让正在开发的软件始终处于可工作状态,让产品可以快速迭代,同时还能保持高质量。

  • 持续交付(Continuous Delivery)

持续交付是持续集成的延伸或者看作持续集成的下一步,它将集成后的代码部署到类生产环境,确保可以以可持续的方式快速向客户发布新的更改。如果代码没有问题,可以继续部署到生产环境中。它强调的是,不管怎么更新,软件是随时随地可以交付的。

  • 持续部署(Continuous Deployment)

持续部署是持续交付的下一步,在持续交付的基础上,由开发人员或运维人员定期向生产环境部署稳定的构建版本,持续部署的目标是代码在任何时刻都是可部署的,并可自动进入到生产环境。

而CI/CD整套流水线体系的运行我们需要Jenkins这样的平台去支撑。

 

部署Jenkins环境

这里以Linux平台(centos 7)为例讲解

安装配置JDK环境

  1. 从官网下载jdk压缩包,拷贝到linux系统opt目录下
    http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
  2. 解压:
  3. tar -xzvf jdk-8u121-linux-x64.tar.gz
  4. 配置环境变量,/etc/profile文件每个用户登录时都会运行的环境变量设置
  5. vim /etc/profile
  6. 在最末尾进行配置
  7. export JAVA_HOME=/opt/jdk1.8.0_121 export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/ export PATH=$PATH:$JAVA_HOME/bin
  8. 注意:JAVA_HOME需要配置为本地JDK家目录
  9. 使配置生效
  10. source /etc/profile
  11. 验证JDK配置
  12. java -version

安装配置Jenkins

  1. 从官网下载Jenkins rpm包
  2. wget https://pkg.jenkins.io/redhat-stable/jenkins-2.249.3-1.1.noarch.rpm
  3. 从官网下载可能速度较慢,可以换成清华的地址:https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/
  4. 安装Jenkins
  5. rpm -ivh jenkins-2.249.3-1.1.noarch.rpm
  6. 启动Jenkins
  7. systemctl start jenkins
  8. 可能遇到的报错:
  9. Starting Jenkins bash: /usr/bin/java: No such file or directory
  10. 解决方案: 添加java命令的的软链接
  11. ln -s /opt/jdk1.8.0_121/bin/java /usr/bin/java
  12. 修改Jenkins端口号
  13. 默认Jenkins会使用8080端口,此端口会被很多程序使用,比如tomcat
  14. 编辑JENKINS_PORT配置选项
  15. vim /etc/sysconfig/jenkins ```shell ## Type: integer(0:65535) ## Default: 8080 ## ServiceRestart: jenkins # # Port Jenkins is listening on. # Set to -1 to disable # JENKINS_PORT="8081"
  16. 重启Jenkins
  17. systemctl restart jenkins

使用Jenkins

访问Jenkins通过http://你的服务器ip地址:8081即可访问

一、初始化配置,进入到对应目录通过cat命令查看初始化密码

cat /var/lib/jenkins/secrets/initialAdminPassword

 

二、自定义插件进行安装

 

三、勾选【无】选择安装,这里不选择插件安装是因为插件可能会下载失败,我们可以选择后续再去安装。

 

四、填写管理员用户信息

 

五、点击保存并完成即可

 

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

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

相关文章

【零基础入门学习Python---Python中数据分析与可视化之快速入门实践】

🚀 零基础入门学习Python🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜…

css基础知识十六:如何实现单行/多行文本溢出的省略样式?

一、前言 在日常开发展示页面,如果一段文本的数量过长,受制于元素宽度的因素,有可能不能完全显示,为了提高用户的使用体验,这个时候就需要我们把溢出的文本显示成省略号 对于文本的溢出,我们可以分成两种…

学习之路不可或缺的软件宝藏,一起分享吧

在当今数字化时代,学习变得更加便利和多样化。为了助力你的学习之路,我将分享一些不可或缺的学习必备软件,让你事半功倍。 分享一:小睡眠 小睡眠是一款睡眠神器,专为那些每天晚上压力过大、思虑过多而难以入睡的人设…

【已解决】使用pyaudio内录声卡声音及相关问题

使用pyaudio内录声卡声音及相关问题解决 目录 使用pyaudio内录声卡声音及相关问题解决1 实现代码1.1 Recorder类:1.2 调用方法 2 问题一:选择设备实现内录/外录(解决报错:OSError: [Errno -9999] Unanticipated host error&#x…

Vue Vite Manual

create project 初始化项目 $ npm create vitelatest导入vs code 方便操作 初始化的目录如下 安装依赖库 生成node_modules依赖库 和 package-lock.json. 其中package-lock.json用于锁定模块的版本号。 npm install启动项目 npm run dev项目配置 增加路由器 路由器 n…

骑行,究竟该不该佩戴护膝?应该怎么佩戴护膝才有效果?

骑行作为一项受欢迎的运动方式,在现代社会中越来越受到关注和热爱。随着骑行爱好者的增多,对于个人保护意识的重视也在逐渐提高。在这个话题中,一个备受关注的问题就是骑行时是否有必要戴护膝,以及如何正确佩戴护膝。 对于骑行爱好…

SAP生产版本和工艺路线由于批量不一致导致的报错问题解决实例

近期接到工艺用户问题,在维护生产版本时报错,状态异常,寻求支持。 在详细的提示信息中有一个生产版本不一致的提示,但不知这里的不一致具体指向什么,从逻辑上来推,这里只有一个可能,就是工艺路线…

windows 和华为手机使用charles抓包记录

1.下载charles 建议安装使用最新版,官方下载地址 https://www.charlesproxy.com/download help->Register->把上面的生成注册码放进去就行了(在charles注册地址里面注册一下,charles注册地址) 2.Proxy-> 勾选window…

网络安全(黑客)技术学习路线

谈起黑客,可能各位都会想到:盗号,其实不尽然;黑客是一群喜爱研究技术的群体,在黑客圈中,一般分为三大圈:娱乐圈 技术圈 职业圈。 娱乐圈:主要是初中生和高中生较多,玩网恋…

npm 安装私库包报错:请求地址错误 | 请求包错误

npm 安装私库包报错:请求地址错误 | 请求包错误 错误信息试错过程解决办法 在一次创建完 npm 私库之后,上传 npm 包没问题,但是下载一直出错。 老是请求一个旧的地址下载某个库,而那个地址已经停用了,因此请求很多次之…

在Layout里面创建封装如何快速切换单位

公制亦称“米制”、“米突制”。1858年《中法通商章程》签定后传入中国的一种国际度量衡制度。创始于法国。在PCB中单位为MM(毫米) 英制:英国、美国等英语国家使用的一种度量制。长度主单位为英尺,重量主单位为磅,容积…

Spring学习(三)(类注解和方法注解)

目录 1. 存储Bean对象 1.1 配置扫描路径 1.2 添加注解存储Bean对象 1.2.1 Controller(控制器存储) 1.2.2 Service(服务存储) 1.3 这么多注解???为什么?? 1.3.1 类注解时间的关系 1.4 方法…

leetcode:种花问题

种花问题 假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。 给你一个整数数组 flowerbed 表示花坛,由若干 0 和 1 组成&#xff0c…

Go语言网络编程:TCP粘包问题——Go实现封包拆包

一:TCP粘包介绍 1.1 TCP介绍 如上图,TCP具有面向连接、可靠、基于字节流三大特点。 字节流可以理解为一个双向的通道里流淌的数据,这个数据其实就是我们常说的二进制数据,简单来说就是一大堆 01 串。纯裸TCP收发的这些 01 串之间…

对弈人工智能!myCobot 280开源六轴机械臂Connect 4 四子棋对弈下篇

前言 在上篇文章中,我们探讨了如何创造一个能够进行Connect4的对弈大脑。简单的介绍了几种对弈算法,例如极小化极大算法,Alpha-Beta剪枝算法等,最关键的是目前最流行的神经网络算法和深度学习。神经网络算法,让计算机…

Dubbo zookeeper

1、RPC全称为remote procedure call,即远程过程调用。Dubbo作为一个RPC框架,其最核心的功能就是要实现跨网络的远程调用 2、Dubbo提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。 3、 Du…

Google SEO内容指南:您实现最大自然流量的路线图

欢迎来到令人兴奋的SEO内容世界! SEO就像拥有一个秘方,结合了创造力、策略和技术诀窍的正确成分,使您的内容在广阔的数字环境中大放异彩。 但最好的是 – SEO内容并不是要牺牲您独特的声调或损害您的创造力。相反,它是关于了解搜…

从0开始,手写MySQL数据管理器DM

说在前面 从0开始,手写一个MySQL的学习价值在于: 可以深入地理解MySQL的内部机制和原理,MySQL可谓是面试的绝对重点和难点, 尼恩曾经指导过的一个7年经验小伙,凭借精通MySQL 搞定月薪40K。 从而更好地掌握MySQL的使…

六、Eureka服务发现(源码分析)

1 什么是服务发现 根据服务名称发现服务的实例过程客户端会在本地缓存服务端的列表拉取列表是有间隔周期的 (导致服务上线 客户端不能第一时间感知到 (可以容忍))其实每次做服务发现 都是从本地的列表来进行的 2 测试服务发现 …

哆啦A梦和小猪佩奇(Python实现)

目录 1 哆啦A梦 2 小猪佩奇 3 Python代码实现(哆啦A梦) ​ 4 Python代码实现(小猪佩奇 ) 1 哆啦A梦 “只要把愿望系在竹竿上请求月亮女神,心愿便能达成”。我超喜欢这句话。 哆啦A梦的创造要追溯到1969年的某个…