一、jenkins介绍

jenkins和持续集成的关系

Jenkins 是实现持续集成(CI)最流行的自动化工具,它负责自动构建、测试和部署代码,确保团队能频繁且可靠地集成代码变更。

持续集成和敏捷开发的关系

敏捷开发是一种"快速迭代、灵活应对变化"的 开发方法,强调小步快跑、持续交付。
持续集成是一种"自动合并代码、立即测试"的 技术手段,确保代码随时能正常工作。

它们的关系就像:

  • 敏捷是"怎么干活"(方法论),持续集成是"怎么保证干得好"(工具支持)。

  • 敏捷说:"我们要每周交付新功能!" 持续集成说:"放心,每次改代码我都自动检查,不会翻车。"

没有持续集成的敏捷 → 容易代码混乱,迭代越快bug越多。
没有敏捷的持续集成 → 能保证质量,但可能跟不上快速变化的需求。

最佳搭档:敏捷靠持续集成实现"又快又稳",持续集成靠敏捷发挥最大价值。

流程整合

持续集成、持续交付

CI(持续集成) = 频繁集成代码 + 自动化测试(确保代码质量)
CD (继续交付)= 自动化发布(持续交付:手动点发布;持续部署:全自动发布)

Devops和CICD(持续集成、持续交付的)关系

DevOps 是一种软件开发和运维(IT运营)的文化、实践与工具的结合体,旨在通过自动化、协作和持续改进,缩短软件开发周期,提高交付效率和质量。

  • CI/CD 是 DevOps 的核心技术实践,是实现 DevOps 目标(快速交付、高质量)的关键工具链。

  • DevOps 是更广泛的文化和方法论,包含 CI/CD 但不仅限于此。

二、jenkins准备

getlab、gethub区别

  • 用 GitHub:想玩开源、蹭社区、轻量协作(我个人理解:就是一个社区仓库,可以把想公开的项目放上去,且基础的版的github不支持自托管)。

  • 用 GitLab:要免费私有库、自托管、或全套 DevOps(我个人理解:公司一般用这个管理项目,因为他支持部署在公司内部,私有化部署,保证代码安全)。

对比项GitHubGitLab
私有仓库免费但协作人数受限完全免费,不限协作人数
CI/CD需配置 GitHub Actions内置强大 CI/CD(开箱即用)
自托管付费(Enterprise Server)免费(社区版 CE)
企业级功能依赖插件原生支持(安全扫描、K8s 集成)
适用场景开源/小团队企业私有项目/完整 DevOps 流程

 jenkins持续集成流程图

 环境准备

名称ip地址需要安装的软件
代理托管服务器192.168.157.148gitlab-12.4.2
持续集成服务器192.168.157.159Jenkins-2.190.3, JDK1.8, Maven3.6.2, Git, SonarQube
应用测试服务器192.168.157.150jdk1.8,tomcat8.5

三、gitlab

gitlab安装

gitlab用来托管代码服务。

一、安装相关依赖和基本配置
yum -y install policycoreutils openssh-server openssh-clients postfix 二、启动ssh服务&设置为开机启动(很多机器都设置了)
systemctl enable sshd && sudo systemctl start sshd
查看是否设置成功或查看是否已设置
systemctl status sshd三、设置postfix开机自启,并启动,postfix支持gitlab发信功能(启动这个时,主机名不要是ip,必须有主机名)
systemctl enable postfix && systemctl start postfix
查看是否启动
systemctl status postfix 四、如果开启了防火墙,开放ssh以及http服务,然后重新加载防火墙列表(没开启防火墙救不用设置)
firewall-cmd --add-service=ssh --permanent
firewall-cmd --add-service=http --permanent
firewall-cmd --reload

下载和安装(二进制方式安装)

五、下载git包,二进制方式传达/home/jenkins文件夹
二进制传到/home/jenkins目录
ll /home/jenkins
gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm安装
rpm -ivh gitlab-ce-12.4.2-ce.0.el6.x86_64.rp[root@k8s-master jenkins]# rpm -ivh gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm 
警告:gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm: 头V4 RSA/SHA1 Signature, 密钥 ID f27eab47: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...1:gitlab-ce-12.4.2-ce.0.el6        ################################# [100%]
It looks like GitLab has not been configured yet; skipping the upgrade script.*.                  *.***                 ********               *****.******             ***************            ********,,,,,,,,,***********,,,,,,,,,,,,,,,,,,,,*********,,,,,,,,,,,.,,,,,,,,,,,*******,,,,,,,,,,,,,,,,,,,,,*****,,,,,,,,,.,,,,,,,****,,,,,,.,,,***,,,,,*,._______ __  __          __/ ____(_) /_/ /   ____ _/ /_/ / __/ / __/ /   / __ `/ __ \/ /_/ / / /_/ /___/ /_/ / /_/ /\____/_/\__/_____/\__,_/_.___/Thank you for installing GitLab!
GitLab was unable to detect a valid hostname for your instance.
Please configure a URL for your GitLab instance by setting `external_url`
configuration in /etc/gitlab/gitlab.rb file.
Then, you can start your GitLab instance by running the following command:sudo gitlab-ctl reconfigureFor a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md#上面提示让我们修改/etc/gitlab/gitlab.rb,可以修改访问端口
vi /etc/gitlab/gitlab.rb
external_url 'http://gitlab.example.com' ---> external_url 'http://192.168.157.148:82'
#nginx['listen_port'] = nil ---> nginx['listen_port'] = 82
#分别是修改了访问ip和端口,启动gitlab是用nginx启动的,所以nginx的端口也修改为82六、重载加载配置及启动gitlab
gitlab-ctl reconfigure #这个过程会很慢
gitlab-ctl restart如果有防火墙,需要放开82端口
firewall-cmd --zone=public --add-port=82/tcp --permanent
firewall-cmd --reload

 浏览器访问:http://192.168.157.148:82

第一次登录需要设置新密码,账号是root。登录成功如下:

设置中文

gitlab新增组、用户和项目

创建组,并保存

 创建用户

设置如下,其他参数可用默认值 

 保存后,在这里设置用户密码

组添加用户成员

新增用户并且分配权限:

Guest:可以创建issue、发表评论,不能读写版本库
Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限
Developrr:可以克隆代码、开发、提交、push,普通开发可以赋予这个权限
Maintainer:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心开发可以赋予这个权限
Owner:可以设置项目访问权限-VisibilityLevel、删除项目、迁移项目、管理组成员,开发组组长可以赋予这
个权限 

该用户就可以登录了,第一次登录也是要重置密码。

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

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

相关文章

k3s or kubesphere helm安装报错dial tcp 127.0.0.1:8080: connect: connection refused

在安装kubesphere时报错 Error: Kubernetes cluster unreachable: Get "http://localhost:8080/version": dial tcp 127.0.0.1:8080: connect: connection refused helm.go:92: 2025-06-27 15:14:43.30908177 0000 UTC m0.033127135 [debug] Get "http://localh…

使用datafusion和tpchgen-rs进行完整的TPCH 22个查询的基准测试

1.从源码编译bench二进制文件。 下载datafusion源码, 解压到目录,比如/par/dafu, cd /par/dafu/benchmarks export CARGO_INCREMENTAL1 export PATH/par:/par/mold240/bin:$PATH因为mold默认使用并行编译,而这些二进制文件很大,如…

【软考高项论文】论信息系统项目的干系人管理

摘要 在信息系统项目管理里,干系人管理极为关键,它不仅决定项目成败,还对项目进度、质量和成本有着直接影响。本文结合作者2024年6月参与管理的信息系统项目,详细阐述了项目干系人管理的过程,分析了干系人管理与沟通管…

PB应用变为Rust语言方案

从PB(PowerBuilder)迁移到现代开发软件 PowerBuilder(PB)作为早期的快速应用开发工具,曾广泛应用于企业级数据库应用开发。随着技术发展,PB逐渐面临以下挑战,促使企业转向现代开发工具: 技术陈旧与维护困难 PB的架构基于较老的客户端-服务器模式,难以适应云原生、微…

【大模型】Query 改写常见Prompt 模板

下面对常见的几种“Query 改写”Prompt 模板进行中英文对照,并在注释中给出中文说明,帮助中国用户快速理解与使用。 根据调研,企业级 Query 改写模块需要覆盖多种常见场景,包括拼写纠错、中英混合、省略上下文、多义词扩展、专业术…

西门子S7-200 SMART PLC:小型自动化领域的高效之选

在工业自动化领域,小型PLC作为设备控制的核心组件,其性能、灵活性和性价比始终是用户关注的重点。西门子推出的S7-200 SMART可编程控制器,凭借对中国市场需求的精准把握,成为了小型自动化解决方案的标杆产品。本文将从产品亮点、技…

使用iperf3测试网络的方法

深入掌握网络性能测试:iperf3全指南 在网络优化、故障排查和带宽验证中,iperf 是工程师必备的利器。这款开源工具通过模拟数据流,精准测量​​带宽、抖动、丢包率​​等核心指标。本文将结合实战经验,详解iperf的安装、参数配置和…

Level2.11继承

一、继承 #动物# #老虎、狮子、大象 #动物有共性 ##定义一个动物:1.有4条腿;2.陆地上跑;3.需要进食(属性能力) ##猫:同上(继承了动物的属性和能力) ##老鼠:同上#Python…

Class3Softmax回归

Class3Softmax回归 回归VS分类 回归是估计一个连续值 分类是预测一个离散类别 回归分类单连续值输出通常为多个输出自然区间R输出i是预测为第i类的置信度跟真实值的区别作为损失 生活中的分类问题 1.垃圾分类 类别: 可回收物 湿垃圾(厨余垃圾&#xff0…

day042-负载均衡与web集群搭建

文章目录 0. 老男孩思想-面试官问:你对加班的看法?1. 负载均衡2. 搭建负载均衡的WordPress集群2.1 负载均衡服务器2.2 配置web服务器2.3 测试 踩坑记录1. /var/cache/nginx权限问题 0. 老男孩思想-面试官问:你对加班的看法? 互联网公司没有不加班的&a…

40岁技术人用AI寻找突破路线

年近40,坐标重庆,从事医疗器械行业多年,遇到发展瓶颈。刚好遇到AI技术浪潮。最近一年在不断尝试把AI应用于工作生活的方方面面。 总结一下我是如何利用AI来做职业规划的: 整理好自己的简历,越详细越好。这个可以利用…

kde截图工具报错

An error occurred while taking a screenshot. KWin screenshot request failed: The process is not authorized to take a screenshot Potentially relevant information: - Method: CaptureScreen - Method specific arguments: "eDP-2"好的,感谢您提…

有理函数积分——分式分解时设分解式的规则

目录 一、设前处理 1. 假式化真式 2. 分母因式分解 3. 判断可约不可约 二、一次分母 1. 多项一次分母​ 2. 单项一次重复分母​ 三、二次分母(当然是分母不可约的,如果可约就因式分解然后对应一次分母) 1. 多项二次分母​ 2. 单项二次重复分母​ 四、混…

从 AJAX 到 axios:前端与服务器通信实战指南

直到现在我们小宁已经更新了44作品了,其中和大家介绍了Python入门基础、Fast API框架、SQLite数据库,以及前端的知识都已经学习完了,总的来说现在前端、后端、数据库已经都学习了,那大家是否有这样的疑问,前端后端到底…

Pycatia二次开发基础代码解析:面属性控制、视图定向与特征统计的工业级实现

本文将以专业视角深入解析CATIA二次开发中的三个核心类方法,通过详细分析代码实现揭示其在工业设计中的实际应用价值。全文将严格围绕提供的代码展开,不做任何修改或补充。 一、面属性控制:精确可视化表达技术 方法功能解析 color_and_laye…

bmc TrueSight 监控 Oracle 11g 配置

bmc TrueSight 监控 Oracle配置 文章目录 bmc TrueSight 监控 Oracle配置1.将pat加入oinstall和dba组2.创建监控的表空间和临时表空间并告知表空间名称3.将oracle相关系统环境变量加入到监控pat账户的.profile或.bash_profile文件4.登陆Apollo监控web页面,设置基础架…

css实现高度可变、上下边框是渐变色、左右边框是纯色的div容器

效果图&#xff1a; div容器&#xff1a; <div className{styles.container}><div className{styles.content}><div className{styles.inner}><!-- 内容部分 --></div></div> </div> css&#xff1a; .container {float: left;w…

python二维码识别

pyzbar 识别QR二维码 from PIL import Image from pyzbar.pyzbar import decode# 打开图像文件 image_path qr01.jpg # 替换为你的图像路径 image Image.open(image_path)# 解码图像中的二维码 decoded_objects decode(image)# 输出识别结果 for obj in decoded_objects:p…

ZYNQ EMMC/FLASH/SD卡深度性能评测与创新实践

深入探索ZYNQ存储子系统性能,揭示硬件加速下的存储优化之道 一、存储性能为何如此重要? 在基于Xilinx ZYNQ SoC的嵌入式系统中,EMMC、QSPI FLASH和SD卡作为核心存储介质,直接影响系统启动时间、数据吞吐量和用户体验。传统测试方法往往局限于简单读写速度测试,缺乏对真实…

html制作一个简单的表单

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>表单输入练习</title><style></style> </head><body style"background-color: pink;"><div><h2>…