【DevOps实战|基于Jenkins与Gitlab构建企业级持续集成环境系统】(更新中未完成)

news2024/11/26 4:33:05

目录

一、DevOps简介

二、CI/CD简介

1、代码部署的最基本流程

2、软件开发生命周期

3、持续集成整体流程

三、Git简介

1、GitHub与Gitlab区别

四、基于Jenkins与Gitlab构建持续集成环境系统

1、环境说明

2、安装gitlab

1)配置邮件报警


一、DevOps简介

        Devops是Development(开发)和Operations(运维)的简写。

        Devops是集文化理念、实践与工具与一身的,并不是单单的工具,devops是针对企业中的开发人员、运维人员和测试人员的一种工作理念,在应用开发、代码部署和质量测试等整条生命周期中,一起协作与沟通的最佳实践,devops强调整个组织的合作性以及基础设施变更的自动化、从而实现持续集成、持续交付和持续部署。

二、CI/CD简介

持续集成:Continuous Integration

  •         持续集成是指频繁的将代码集成到主干,也就是多名开发者在开发不同功能代码的过程当中,可以频繁的将代码合并到一起并且相互不影响工作。

持续交付:Continuous Delivery

  •         持续交付是指频繁地将软件的新版本,交付给质量团队或者用户,以供评审。可以看作持续集成的下一步,如果评审通过,代码就进入生产阶段。

持续部署:Continuous Deoloyment

  •         持续部署是指基于某种工具或平台实现代码自动化的构建、测试和部署到线上环境以实现高质量产品的交付,持续部署在某种程度上代表了一个开发团队的更新迭代速率,可以看作持续交付的下一步。

1、代码部署的最基本流程

        测试环境-->预发布环境-->生产环境

2、软件开发生命周期

 

3、持续集成整体流程

三、Git简介

一个分布式持续集成工具,设计之初就具备以下优点:

  1. 可靠性:数据的上传和下载必须是安全的、一致的,所有行为都要进行验证,数据的变更通过不同的版本进行逻辑隔离;
  2. 分布式:不依赖中央服务器,而是每个开发电脑都是一个本地仓库,可用于代码提交与回滚;
  3. 高效:git基于分布式的功能实现代码的快速提交与回滚。

1、GitHub与Gitlab区别

  • GitHub:基于Git的一个公有代码仓库
  • Gitlab:基于Git的一个私有代码仓库

四、基于Jenkins与Gitlab构建持续集成环境系统

1、环境说明

系统版本:centos7

虚拟机主机名和IP地址:

gitlab 192.168.10.128/24

2、安装gitlab

使用的是清华大学镜像源,Gitlab使用的版本是gitlab-ce-11.11.8,下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm

  • 安装gitlab
[root@gitlab ~]# yum install https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm

安装成功后,会显示下面信息

 显示的内容说:你需要配置url给你的gitlab实例,在/etc/gitlab/gitlab.rb文件,external_url就是暴露访问gitlab的ip地址,这里也可以用域名,需要做个本地解析,在/etc/host里修改,

  • 配置/etc/gitlab/gitlab.rb文件
#找到external_url这一行,后面修改为自己的IP地址,我的就是external_url 'http://192.168.10.128'
[root@gitlab ~]# vim /etc/gitlab/gitlab.rb 

1)配置邮件报警

  • 修改配置文件
#添加以下内容,可以直接搜索,到命令行模式 输入/查找smtp等,去掉前面的#,修改内容即可
[root@gitlab ~]# vim /etc/gitlab/gitlab.rb 
#开启smtp
gitlab_rails['smtp_enable'] = true
#smtp服务器地址,如果是163邮箱,则是smtp.163.com
gitlab_rails['smtp_address'] = "smtp.qq.com"
#smtp服务器的端口号,默认为25,ssl协议加密后是465
gitlab_rails['smtp_port'] = 465
#邮箱账号
gitlab_rails['smtp_user_name'] = "142968****@qq.com"
#邮箱密码,如果是客服的邮箱,不支持密码认证的,一般对给个授权码,通过调用客服邮箱发送邮件
#qq邮箱配置授权码步骤:1、登录网页版QQ邮箱;2、设置->账户;3、开启POP3/SMTP服务(发送短信验证开启)
gitlab_rails['smtp_password'] = "授权码"
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
#是否开启ssl协议加密
gitlab_rails['smtp_tls'] = true
#发件人,跟自己的账号一样
gitlab_rails['gitlab_email_from'] = '142968****@qq.com'
user['git_user_name'] = "142968****@qq.com"

  • 重置gitlab
[root@gitlab ~]# gitlab-ctl reconfigure
  • 查看状态
    [root@gitlab ~]# gitlab-ctl status
    
  • 登录控制台发送测试邮件
[root@gitlab ~]# gitlab-rails console
-------------------------------------------------------------------------------------
 GitLab:       11.11.8 (1d18d065069)
 GitLab Shell: 9.1.0
 PostgreSQL:   9.6.11
-------------------------------------------------------------------------------------
Loading production environment (Rails 5.1.7)
irb(main):001:0> Notify.test_email('liuyangyi1124@163.com',
'Test_001','Hello World').deliver_now

查看 

2)登录Gitlab 

  • 关闭防火墙

[root@gitlab ~]# systemctl stop firewalld
[root@gitlab ~]# systemctl disable firewalld
  • 浏览器访问

 如果你出现了以下错误页面,请关闭该页面,重新访问即可

 

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

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

相关文章

目标检测的新范式:Towards Open World Object Detection

论文题目:Towards Open World Object Detection 1 摘要 人类有一种识别其环境中未知物体实例的自然本能(natural instinct)。当这些未知的实例最终获得相应的知识时,对它们的内在好奇心有助于了解它们。这促使我们提出一种新的计算机视觉问题称为&…

Week 11

洛谷P1796 汤姆斯的天堂梦 题目描述 汤姆斯生活在一个等级为 000 的星球上。那里的环境极其恶劣,每天 121212 小时的工作和成堆的垃圾让人忍无可忍。他向往着等级为 NNN 的星球上天堂般的生活。 有一些航班将人从低等级的星球送上高一级的星球,有时需…

算法第十四期——动态规划(DP)初入门

目录 DP初步:状态转移与递推 最少硬币问题 DP基础 DP的两个特征 DP:记忆化 图解DP求解过程 最经典的DP问题:0/1背包 模板题:小明的背包 DP状态设计 DP状态转移方程(重点) 代码 空间优化:滚动数组 (1)交替滚…

【机组组合】基于Benders分解算法解决混合整数规划问题——机组组合问题(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【鸟哥杂谈】腾讯云 CentOS8 Linux环境下通过docker安装mysql

忘记过去,超越自己 ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 2023-01-15 ❤️❤️ 本篇更新记录 2023-01-15 ❤️🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言📝&#x1f64…

Vite中如何更好的使用TS

TS 是JS的一个类型检查工具,检查我们代码中可能会存在的一些隐形问题;同时可以使我们的编译器具备一些语法提示功能。 如果我们使用create-vue(vue3官方脚手架工具)创建了项目,该项目基于 Vite 且 TypeScript 已经准备…

SpringBoot+Vue使用easypol出现无法导出Excel表的问题

本篇博文目录1.异常信息2.原因3.解决办法4.详细的SpringBooteasypol前后端分离实现excel导出的步骤1.异常信息 今天在使用easypol导出Excel表的时候,发现能够从后端接口返回数据,但是就是无法导出Excel,控制台输出devicepolicies:1 Uncaught (in promise) error,并且…

2022年度总结 - 明月醉窗台

2022年度总结 - 明月醉窗台 1.2022年成果 - 感谢CSDN提供了自我创作的平台,有多少个夜晚我将其作为心灵的寄托... - 感谢各位小伙伴的抬爱和学习过程中的共同见证,将人生视为一条向上的曲线是明确且坚持不懈的抉择... - 立足当下,不忘脚踏实…

【算法基础】1.5 前缀和与差分

文章目录前缀和题目描述解法讲解二维前缀和题目描述解法讲解差分题目描述解法讲解二维差分题目描述解法讲解前缀和 题目描述 输入一个长度为 n 的整数序列。 接下来再输入 m 个询问,每个询问输入一对 l,r。 对于每个询问,输出原序列中从第 l 个数到第 …

IVD-Net:多模态UNet在MRI中的椎间盘定位和分割

摘要 本文提出了一种多模态磁共振图像中的椎间盘(IVD)定位和分割体系结构,它扩展了UNet。与单一的图像相比,多模态的数据带来了互补的信息有助于更好的数据表示和判别能力。 在本文中,每种MRI模态的数据都以不同的路…

Waf功能、分类与绕过

一. waf工作原理 Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。 常见的系统攻击分为两类: 一是利用Web服务器的漏洞进行攻击,如DDOS攻击、病毒木马破坏等攻击;二是利用网页自身的安全漏洞进…

【C语言】实现通讯录(详解)

目录 一、需要实现的功能 1.1 类型和结构体的定义 二、拆分代码 2.1 游戏菜单 2.1.1 函数调用 2.1.2 函数体的实现 2.1.2运行效果 2.2 初始化结构体 2.2.1 函数调用 2.2.2 函数体的实现 2.2.3 运行结果 2.3 添加联系人信息 2.3.1 函数调用 2.3.2 函数体的实现 2…

操作系统之光--鸿蒙

鸿蒙是什么?鸿蒙包含Openharmony和harmonyOS。Openharmony是华为向开放原子开源基金会捐赠了鸿蒙开源部分的代码,归属于开放原子开源基金会。HarmonyOS是基于Openharmony的商业发行版本。目前大家华为手机上运行就是它。鸿蒙能做什么?很明显&…

【算法基础】1.6 双指针算法

文章目录双指针思想最长连续不重复子序列数组元素的目标和题目讲解判断子序列双指针思想 双指针算法,就是可以将 n ^ 2 优化到 n。 最长连续不重复子序列 给定一个长度为 n 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度…

IO流的学习

文章目录一、File类的使用创建File实例File常用方法总结二、IO流分类读入数据的基本操作步骤(第一种)步骤(第二种)写出数据的基本操作步骤读入并写出数据的基本操作(复制)步骤注意处理流之一:缓…

【Nginx】静态资源部署(下)

文章目录静态资源的缓存处理缓存概述浏览器缓存相关指令expires指令add_header指令Nginx的跨域问题解决同源策略跨域问题跨域问题的案例演示解决方案静态资源防盗链什么是资源盗链Nginx防盗链的实现原理:针对目录进行防盗链静态资源的缓存处理 缓存概述 什么是缓存…

【爪洼岛冒险记】第4站:Java中如何进行控制台输入输出?用Java实现猜数字小游戏;超详细讲解Java中的方法:方法的重载,方法的签名

🌱博主简介:是瑶瑶子啦,一名大一计科生,目前在努力学习JavaSE。热爱写博客~正在努力成为一个厉害的开发程序媛! 📜所属专栏:爪洼岛冒险记【从小白到大佬之路】 ✈往期博文回顾:链接: 【爪洼岛冒…

【文件指针+文件顺序读写操作函数】

1.文件的打开和关闭 1.1 什么是文件指针 2.文件操作函数 2.1 fgetc函数和fputc函数2.2 fgets函数和fputs函数2.3 fscanf函数和fprintf函数2.4 fwrite函数和fread函数 1.文件的打开和关闭 1.1 什么是文件指针? 每个被使用的文件都在内存中开辟了一个相应的文件…

文件操作详解

文章目录前言一、什么是文件?1.程序文件2.数据文件3.文件名二、文件的打开和关闭1.文件指针2.文件的打开和关闭3.打开模式汇总4.例子三.操作函数介绍1.基本函数2.fseek2.ftell3.rewind4.feof尾话前言 恐怕很多人学完了c语言甚至不知道文件操作,也确实&am…

FPGA学习笔记-知识点3-Verilog语法1

1.关键字 2.运算符 按其功能可分为以下几类: 1) 算术运算符(,&#xff0d;,&#xff0c;/,&#xff05;) 2) 赋值运算符(,<) 3) 关系运算符(>,<,>,<) 4) 逻辑运算符(&&,||,!) 5) 条件运算符( ? &#xff1a;) 6) 位运算符(,|,^,&,^) …