当前位置: 首页 > news >正文

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

目录

一、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
  • 浏览器访问

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

 

相关文章:

  • 【手写 Vue2.x 源码】第二十八篇 - diff算法-问题分析与patch优化
  • (转)Chrome的最小字体12px限制最终解决办法
  • 基于PyTorch 实现一个简单的 GAN 模型。仍然以绘画创作为例,假设我们要创造如下“名画”(以正弦图形为例)
  • 基于python手撕实现BP 神经网络实现手写数字识别
  • 深度解析源码之SpringMVC文件上传为什么要用POST请求还要设置请求头
  • 消息中间件如何选型 图解 Kafka vs RabbitMQ vs RocketMQ 的差异
  • 372. 超级次方
  • 盘点:2022年豆瓣评分8.0以上的计算机书籍有哪些?
  • WPF之调用Iconfont
  • FPGA:Vivado基于IP集成的计数器设计(3)
  • 【GD32F427开发板试用】+软件IIC(OLED显示)
  • 【机器学习】逻辑回归(理论)
  • SAP ABAP 代码修改自动比较对象版本一致
  • Redis应用2(Redison)
  • 【linux】之网络安全
  • Open3D 点云最小二乘法拟合二次曲面(Python版本)
  • 大坝安全监测解决方案 水库大坝安全监测系统改造工程方案
  • 文件操作详解
  • 多线程~实现一个自己的线程池,以及基于单例模式的线程池
  • 手撕Pytorch源码#1.Dataset类 part1