GitLab 与 Jenkins 结合构建持续集成环境

本文介绍了CI/CD的概念,包括持续集成、持续交付和持续部署,强调它们在提升开发效率和确保代码质量中的作用。接着,详细讲解了Jenkins和GitLab的用途,以及如何使用GitLab进行自动化部署,包括实验环境的准备、组件安装、配置和访问。此外,还讨论了手动部署与自动化部署的区别,并简单阐述了集群和分布式系统的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.CI/CD介绍

把开发工作流程分为以下几个阶段:

编码 → 构建 → 集成 → 测试 → 交付 → 部署

1.1概述

持续集成(CI):

持续集成(Continuous integration)是指开发者在代码的开发过程中,可以频繁的(一天多次)将代码合并到主干源码仓库,并立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起

 

 它的好处主要有两个

1. 快速发现错误。每完成一点开发,就集成到主干,可以快速发现错误,定位错误也比较容易

2. 防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成

 持续交付:

持续交付(Continuous delivery)指的是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的Staging环境中,做更多的测试。如果代码没有问题,就可以手动部署到生产环境

 持续部署

持续部署(continuous deployment)是持续交付的下一步,指的是代码通过评审以后,部署到生产环境

总的来说,CI/CD提供了一个优秀的 DevOps 环境。对于整个开发团队来说,能很大地提升开发效率,好处与挑战并行。无论如何,频繁部署、快速交付以及开发测试流程自动化都将成为未来软件工程的重要组成部分

1.2 jenkins概述

enkins 概述:是一个开源软件项目,是基于Java开发的一种持续集成、交付、部署的基于web界面的平台,用于自动化各种任务,包括构建、测试和部署软件。

1.3.GitLab

gitlab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的 Git 项目仓库,可通过 Web界面进行访问公开的或者私人项目。Ruby on Rails 是一个可以使你开发、部署、维护 web 应用程序变得简单的框架

1.4.项目部署方式

项目部署方式分2种方式:手动部署、自动化部署

手动部署:

自动部署:

“自动化” 的具体体现:向版本库提交新的代码后,应用服务器上自动部署,用户或测试人员使用的马上就是最新的应用程序

 

1.5.集群和分布式

通过此图可以形象的解释集群和分布式的含义:

 单机结构中的全栈意思是:即做前端的js、css、html等,又做后端的java等
集群结构中的全栈意思是:同时有两个或者更多的人即做前端,又做后端
分布式的意思就是此图所表示的:将后端和前端分开,各做各的

 2.搭建gitlab

2.1实验环境准备

2.1.1实验部署

按照试验拓扑修改主机名和配置ip地址,关闭所有主机的防火墙和selinux

#systemctl stop firwalld && systemctl disable firewalld

#setenfoce 0

#vim /etc/sysconfig/selinux

2.1.2安装gitlab需要组件

 [root@cong11 ~]# yum install -y curl policycoreutils openssh-server openssh-clients postfix policycoreutils-python cronie

2.1.3默认,使用postfix发送邮件

[root@cong11 ~]# systemctl enable postfix

[root@cong11 ~]# systemctl start postfix

2.1.4安装gitlab

[root@cong11 ~]# yum install -y gitlab-ce

2.1.5上传软件包

[root@cong11 ~]# ls

2.1.6安装gitlab

[root@cong11 ~]# rpm -ivh gitlab-ce-12.0.2-ce.0.el7.x86_64.rpm

警告:gitlab-ce-12.0.2-ce.0.el7.x86_64.rpm: 头V4 RSA/SHA1 Signature, 密钥 ID f27eab47: NOKEY

准备中...                          ################################# [100%]

正在升级/安装...

   1:gitlab-ce-12.0.2-ce.0.el7        ################################# [100%]

2.1.7 配置gitlab访问地址

[root@cong11 ~]# vim /etc/gitlab/gitlab

external_url 'http://192.168.1.11'      #修改标红部分

​​​​​​​2.1.8重置 GitLab

 [root@cong11 ~]# gitlab-ctl reconfigure

2.1.9查看端口

gitlab默认使用内置的nginx做为web界面。

注:如果后期 web 界面访问时,总报 502,要把防火墙清空规则,另外内存要大于4G,不然以后内存不足,也报 502

 

 

 [root@cong11 ~]# netstat -antup | grep 80

 [root@cong11 ~]# ps -ef | grep 3810|grep -v "grep"

 2.1.10登录gitlab

http://192.168.1.11

设置好密码后,使用新设的密码登录

 

 

 1.2Gitlab使用

关闭 gitlab: # gitlab-ctl stop

启动 gitlab: # gitlab-ctl start

重启 gitlab: # gitlab-ctl restart

gitlab 主配置文件:/etc/gitlab/gitlab.rb #可以自定义一些邮件服务等

日志地址:/var/log/gitlab/  #对应各服务

服务地址:/var/opt/gitlab/  #对应各服务的主目录

仓库地址:/var/opt/gitlab/git-data #记录项目仓库等提交信息

重置配置:gitlab-ctl reconfigure #不要乱用

重启服务:gitlab-ctl stop/start/restart  #启动命令

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值