1 持续集成 概述及运行流程
1.1 持续集成概述
持续集成概述:持续集成(Continuous integration)持续集成是指开发者在代码的开发过程中,可以频繁的将代码部署集成到主干,并迚程自劢化测试。
持续交付:指的是在集成环境 基础之上,将代码部署到预生产
持续部署:在交付的基础上,把到生产环境过程自动化
1.2 jenkins和Gitlab概述
Jenkins概述:是一个开源软件项目,是基亍Java开发的一种持续集成工具,用亍监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
网方网站:https://jenkins.io/
1.3 GitLab概述:
是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的 Git 项目仓库,可通过 Web界面进行访问公开的或者私人项目。Ruby on Rails 是一个可以使你开发、部署、维护 web 应用程序变得简单的框架。
GitLab 拥有与 Github 类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
GitLab 中文网:https://www.gitlab.cc/installation/#centos-7
1.4 GitHub 和 GitLab 的区别:
相同点: 二者都是基于 web 的 Git 仓库,在很大程度上 GitLab 是仿照 GitHub 来做的,它们都提供了分享开源项目的平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。
不同点:
1、GitHub 如果要使用私有仓库,是需要付费的。GitLab 可以在上面创建私人的免费仓库。
2、GitLab 让开发团队对他们的代码仓库拥有更多的控制,相比于 GitHub,它有不少的特色:允许免费设置仓库权限;允许用户选择分享一个 project 的部分代码;允许用户设置 project 的获取权限,进一步的提升安全性;可以设置获取到团队整体的改进进度;
通过 innersourcing 让不在权限范围内的人访问不到该资源。
总结:从代码私有性方面来看,有时公司并不希望员工获取到全部的代码,这个时候 GitLab 无疑是更好的选择。但对于开源项目而言,GitHub 依然是代码托管的首选。
1.5 git相关概念:
git 是一种版本控制系统,是一个命令,是一种工具
gitlib 是用于实现 git 功能的开发库 
github 是一个基于 git 实现的在线代码托管仓库,包含一个网站界面,向互联网开放
gitlab 是一个基于 git 实现的在线代码仓库托管软件,一般用于在企业内部网络搭建 git 私服
注: gitlab-ce 社区版 ; gitlab-ee 是企业版,收费
1.6 持续集成系统的工作流程大概分为以下几步:
1, 开发者将新版本 push 到 Gitlab。
2, Gitlab 随后触发 jenkins master 结点进行一次 build。(通过 web hook 或者定时检测) 
3, jenkins master 结点将这个 build 任务分配给若干个注册的 slave 结点中的一个,这个 slave 结点根据一个事先设置好的脚本进行 build。这个脚本可以做的事情很多,比如编译,测试,生成测试报告等等。这些原本需要手动完成的任务都可以交给 jenkins 来做。
4, 我们在 build 中要进行编译,这里使用了分布式编译器 distcc 来加快编译速度。 
2. 搭建 GitLab 平台
实验环境: centos7.4 虚拟机需要 6G,后期运行时,内存不够用,直接报错
2.1 安装gitlab插件:
yum install curl policycoreutils openssh-server openssh-clients postfix policycoreutils-python patch git -y
systemctl enable sshd ----开机自启ssh服务
systemctl start sshd ----启动ssh服务
systemctl enable postfix ----开机自启邮件服务
systemctl start postfix ----启动邮件服务
iptables -F ---清空防火墙规则
-------------firewalld,selinux必须要关闭--------------
systemctl stop firewalld---->systemctl disable firewalld
cat /etc/sysconfig/selinux
    2.2  安装gitlab
方法1. yum下载比较慢,直接用迅雷下载
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.2.3-ce.0.el7.x86_64.rpm
rpm -ivh gitlab-ce-10.2.3-ce.0.el7.x86_64.rpm
rpm -qa | grep git
方法2. 配置yum源,使用yum安装
vim gitlab.repo ----新建的文件
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=0
gpgkey=https://packages.gitlab.com/gpg.key
2.3 安装完之后
修改外部访问地址 vim /etc/gitlab/gitlab.rb
修改 external_uel 'http://gitlab.example.com' gitlab.example.com改为本机的外网ip
修改gitlab服务配置文件,都需要执行gitlab-ctl reconfigure-----重新配置应用程序
gitlab-ctl start/stop/restart/status ---启动/关闭/重启/查看状态gitlab

 

一定要确定80端口没被占用,gitlab是基于Nginx,在启动关闭重启的时候可以看到很多服务。 

 3.  汉化版gitlab 

3.1 git clone https://gitlab.com/xhang/gitlab.git   #下载汉化补丁

我用本地下载好的汉化包

tar zxvf gitlab-patch-zh.tat.gz

     cat /root/gitlab/VERSION   ----汉化补丁版本

3.2    停止gitlab服务

gitlab-ctl  stop

3.3    cd /root/gitlab      ----切换到汉化包目录,不切换执行下面的命令报错

git  diff  v10.2.3  v10.2.3-zh  > ../10.2.3-zh.diff      ----比较汉化标签和原标签,导出 patch 用的 diff 文件到/root 下

3.4     patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 </root/10.2.3-zh.diff     ----将 10.2.3-zh.diff 作为补丁更新到 gitlab 中

gitlab-rails目录存放于 web 前端相关的页面

GitLab、Jenkins结合构建持续集成(CI)环境的更多相关文章

  1. Jenkins+Gitlab搭建持续集成(CI)环境

    利用Jenkins+Gitlab搭建持续集成(CI)环境 Permalink: 2013-09-08 22:04:00 by hyhx2008in intern tags: jenkins gitla ...

  2. CentOS 7 部署Gitlab+Jenkins持续集成(CI)环境

    持续集成概述及运行流程 : 持续集成概述 :持续集成(Continuous integration)持续集成是指开发者在代码的开发过程中 ,可以频繁的将代码部署集成到主干,并进行自动化测试  开发→代 ...

  3. Gitlab+Gitlab-CI+Docker实现持续集成(CI)与持续部署(CD)

    写在前面 记录一下,一个自动化开发部署项目的构建过程与简单使用,实现真正的DevOps gitlab安装 步骤一:安装依赖 yum -y install git gcc glibc-static te ...

  4. 【K8S】基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持续集成交付环境(环境搭建篇)

    写在前面 最近在 K8S 1.18.2 版本的集群上搭建DevOps环境,期间遇到了各种坑.目前,搭建环境的过程中出现的各种坑均已被填平,特此记录,并分享给大家! 服务器规划 IP 主机名 节点 操作 ...

  5. gitlab与jenkins结合构建持续集成

    Jenkins是java编写,需要安装JDK,这里采用 yum 安装,对版本有需求的,可以到 oracle 官网下载 JDK. yum install -y java-1.8.0-openjdk 一. ...

  6. 使用Jenkins搭建持续集成(CI)环境

    转自:http://www.cnitblog.com/luckydmz/archive/2012/01/03/77007.html 首先从官网http://jenkins-ci.org/下载 Java ...

  7. [转]使用Jenkins搭建持续集成(CI)环境

    转自:魔のkyo的工作室 首先从官网http://jenkins-ci.org/下载 Java Web Archive (.war) 例如我保存到 D:\jenkins\jenkins.war 运行J ...

  8. Jenkins: 使用Jenkins搭建持续集成(CI)环境

    http://www.cnitblog.com/luckydmz/archive/2012/01/03/77007.html 首先从官网http://jenkins-ci.org/下载 Java We ...

  9. 95、Jenkins部署.net持续集成自动化测试环境

    ##目录 1. 安装Jenkins 1. 配置Jenkins 1. 自动编译 1. 自动部署 1. 自动测试 环境介绍: web服务器机器:192.168.1.7 svn服务器:192.168.1.5 ...

随机推荐

  1. 在Java中==的一个坑

    观察下面代码,输出结果是什么? public static void main(String[] args) { Integer p = 10000; Integer q = 10000; Syste ...

  2. vue项目中cookie的使用

    Vue使用cookie和session 1:cookie和session 为了防止数据运输或存储终端,特地设置了cookie和session,他们其实都是将数据存储当地. cookie数据保存在客户端 ...

  3. javaScript深拷贝和浅拷贝简单梳理

    在了解深拷贝和浅拷贝之前,我们先梳理一下: JavaScript中,分为基本数据类型(原始值)和复杂类型(对象),同时它们各自的数据类型细分下又有好几种数据类型 基本数据类型 数字Number 字符串 ...

  4. 《Streaming Systems》第二章: 数据处理中的 What, Where, When, How

    本章中,我们将通过对 What,Where,When,How 这 4 个问题的回答,逐步揭开流处理过程的全貌. What:计算什么结果? 也就是我们进行数据处理的目的,答案是转换(transforma ...

  5. CS基础课不完全自学指南

    本文讲的是计算机学生怎么自学专业课,说长点就是该如何借助网络上已有的高质量学习资源(主要是公开课)来系统性的来点亮自己的CS技能树.这篇文章完全就是一篇自学性质的指南,需要对编程充满热情,起码觉得编程 ...

  6. 百度3D离线地图开发,3D离线地图开发,百度地图离线开发

    3D离线地图介绍(3D离线采用矢量数据作为地图基础,可保持地图数据最新) 一.开发中引用3D离线地图(可独立部署通过内外IP+端口进行访问,也可拷贝js库文件到项目中通过绝对路径访问) 1).离线AP ...

  7. MySQL8新增降序索引

    MySQL8新增降序索引 桃花坞里桃花庵,桃花庵里桃花仙.桃花仙人种桃树,又摘桃花卖酒钱. 一.MySQL5.7 降序索引 MySQL在语法上很早就已经支持降序索引,但实际上创建的却仍然是升序索引,如 ...

  8. idea的快捷键(复制) IntelliJ Idea 常用快捷键列表

    Ctrl+Shift + Enter,语句完成'!',否定完成,输入表达式时按 "!"键 Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可 ...

  9. 石油储运生产 2D 可视化,组态应用赋能工业智慧发展

    前言 当前,国际油价低位徘徊导致各国石油化工行业投资大幅缩减,石油化工建设行业竞争环境日趋严峻,施工企业的利润空间也被不断压缩.内外交困的环境下,促使企业采取更有效的管理手段来提高效率和降低成本.石油 ...

  10. MVC 与 Vue

    MVC 与 Vue 本文写于 2020 年 7 月 27 日 首先有个问题:Vue 是 MVC 还是 MVVM 框架? 维基百科告诉我们:MVVM 是 PM 的变种,而 PM 又是 MVC 的变种. ...