目录

Git和SVN的区别

Gitlab CI/CD工作原理及使用步骤

Gitlab安装

gitlab-runner安装和注册


GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。

公司内部一般会在自己的内网进行搭建Gitlab服务管理项目代码,一个研发队伍的成员正常包括:需求分析、设计、美工、程序员、测试、实施、运维。

GitLab的用户权限有以下五种:

  • Guest:可以创建issue、发表评论,不能读写版本库
  • Reporter:可以克隆代码,不能提交,可以赋予测试、产品经理此权限
  • Developer:可以克隆代码、开发、提交、push,可以赋予开发人员此权限
  • MainMaster:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,一般GitLab管理员或者CTO才有此权限
  • Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组leader可以赋予这个权限

Gitlab中的组和项目有三种访问权限:Private、Internal、Public

  • Private:只有组成员才能看到
  • Internal:只要登录的用户就能看到,开源项目和组设置的是Internal
  • Public:所有人都能看到

Git和SVN的区别

1)Git是分布式,SVN不是:分布式的操作模式,可使代码保持最新且在传输的过程中不会丢失,在没有网络环境也可提交代码文件及查看历史版本记录、创建项目分支等。支持每个开发人员从中心版本库/服务器上chect out代码后在自己的机器上克隆一个自己的版本;

2)GIT把内容按元数据方式存储(体积更小),而SVN是按文件

3)Git分支简单,支持在同一个工作目录下快速的在几个分支间切换,容易发现未被合并的分支;SVN合并分支后需确认是否已经合并,会存在某些分支有被遗漏的情况;

4)GIT没有一个全局的版本号,而SVN有(SVN的版本号实际是任何一个相应时间的源代码快照)

5)GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时,降低对版本库的破坏。

6)SVN更适用于项目管理(按目录进行分类管理), Git更适用于代码管理;

Gitlab CI/CD工作原理及使用步骤

持续集成(Continuous Integration):频繁的将代码集成到主干,每次集成都通过自动化的构建(包括编译、发布、自动化测试)来验证。具有持续部署和持续交付(Continuous delivery)功能,可用于构建、测试和部署应用程序,其工作目录就在该项目的根目录。

测试:代码仓库对commit操作配置了钩子(hook),只要提交代码或者合并进主干,就会跑自动化测试。

  • 单元测试:针对函数或模块的测试
  • 集成测试:针对整体产品的某个功能的测试,又称功能测试
  • 端对端测试:从用户界面直达数据库的全链路测试

具体使用的操作步骤:

A.将.gitlab-ci.yml(自动部署的集成脚本)文件添加到远程仓库的根目录;

B.对GitLab项目进行配置可使用Runner

设置好以上两个步骤后,每次push代码到Git仓库,Runner都会自动触发CI pipelineCI连接Runner服务器,找到关联的Runner ServiceRunner负责更新代码到本地,并执行集成脚本。让整个流水线运行起来,如下图所示:

C.Runner分类

  • Shared Runners:所有工程都能够使用,只有系统管理员能够创建Shared Runner,使用公平的队列处理作业,防止项目创建数百个可能导致消耗掉所有共享资源的情况
  • Specific Runners:只能为指定的工程服务,使用FIFO队列处理作业
  • Group Runners:所有项目都可访问一组Runner,使用FIFO队列处理作业

Gitlab安装

1.Ubuntu20.04下的gitlab-ctl服务安装,root用户操作如下:

# 1.更新apt源
root@dj:/# apt update# 2.安装wget
root@dj:/# apt-get install wget# 3.下载gitlab-ce软件包
root@dj:/# wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/xenial/gitlab-ce_12.1.4-ce.0_amd64.deb/download.deb# 4.安装软件
root@dj:/# dpkg -i gitlab-ce_12.1.4-ce.0_amd64.deb# 5.修改外部url,改为对应的服务器ip地址
root@dj:/# vim /etc/gitlab/gitlab.rb
external_url 'http://xx.xx.xx.xx:8888'   #此地址根据部署的服务器ip地址进行更改# 6.重新配置gitlab服务
root@dj:/# gitlab-ctl reconfigure# 7.重启gitlab服务
root@dj:/# gitlab-ctl restart# 8.访问测试
使用浏览器访问页面http://xx.xx.xx.xx:8888
在第一次访问时,会看到为管理帐户设置密码的初始提示,修改下root管理员密码之后就可以正常使用了

2.gitlab-ctl相关补充其它命令,如下:

# 启动
$ gitlab-ctl start # 停止
$ gitlab-ctl stop# 状态
$ gitlab-ctl status# 重启
$ gitlab-ctl restart# 重载配置
$ gitlab-ctl reconfigure# gitlab服务的备份路径
/var/opt/gitlab/backups

gitlab-runner安装和注册

1.Ubuntu20.04下安装gitlab-runner,root用户操作如下:

# 1.下载gitlab-runner二进制可执行源文件 x86-64
root@dj:/# curl -L --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64"# 2.给源文件可执行权限
root@dj:/# chmod +x /usr/local/bin/gitlab-runner# 3.创建一个gitlab-runner用户
root@dj:/# useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash# 4.安装gitlab-runner
root@dj:/# gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner# 5.启动gitlab-runner
root@dj:/# systemctl start gitlab-runner
# 启动gitlab-runner还可执行命令:
$ sudo gitlab-runner start# 6.运行gitlab-runner
root@dj:/# gitlab-runner run

2.Ubuntu20.04下注册gitlab-runner,root用户操作如下:

1)获取specific Runner的路径:进入gitlab项目->设置->CI/CD->Runners->手动设置 specific Runner

注册令牌与注册URL的获取地址界面:

2)获取Group Runner的路径:进入gitlab对应组里面->设置->CI/CD->Runners->手动设置 Group Runners

注册令牌与注册URL的获取地址界面:

注册gitlab-runner的具体操作步骤如下:

# 1.使用root用户进行操作注册
root@dj:/# gitlab-runner register# 2.根据提示输入相关配置
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
#(输入GitLab实例URL)
Please enter the gitlab-ci token for this runner:
#(输入runner注册令牌)
Please enter the gitlab-ci description for this runner:
#(输入说明)
Please enter the gitlab-ci tags for this runner (comma separated):
#(输入runner标签 可在gitlab的UI页面修改)
Registering runner... succeeded                     runner=JbkzB1Zy
Please enter the executor: docker-ssh, parallels, docker+machine, kubernetes, custom, docker, shell, ssh, virtualbox, docker-ssh+machine:
#(输入runner脚本执行方式,一般都是shell)
注册成功后在gitlab的相应组和项目页面: 设置->CI/CD->Runners页面会出现一个刚注册的Runner和tags标签,tags标签为刚才输入的tag标签内容# 3.重启gitlab-runner
root@dj:/# gitlab-runner restart# 4.查看已注册成功的Runner列表
root@dj:/# gitlab-runner list上传项目代码,CI/CD流水线运行成功后,会在服务器地址/home/gitlab-runner/builds处看见该Runner。
此时自动部署是否会成功取决于项目的yaml文件是否有误,重点检查yaml文件

解决流水线卡住问题,现象如下:此处的runner为灰色

解决方案:编辑Runner,勾选上“运行未标记的作业”即可运行项目

注册成功的runner在Gitlab页面上的显示:

3.gitlab-runner相关补充其它命令,如下:

# 停止gitlab-runner服务
$ sudo gitlab-runner stop
$ systemctl stop gitlab-runner# 运行gitlab-runner服务
$ gitlab-ruuner run# 卸载gitlab-runner服务
# 1.停止运行gitlab-runner
$ gitlab-runner stop
# 2.查看gitlab-runner服务状态
$ systemctl status gitlab-runner
# 3.卸载gitlab-runner
$ gitlab-runner uninstall
# 以下命令最好不要进行使用,一定要注意、注意、注意
$ rm -rf /etc/gitlab-runner
$ rm -rf /usr/local/bin/gitlab-runner
$ rm -rf /usr/bin/gitlab-runner
$ rm -rf /etc/sudoers.d/gitlab-runner
# 注意:如果使用了以上命令进行卸载了gitlab-runner后,进行重新注册gitlab-runner即可# 查看Linux系统下gitlab-runner用户所对应的文件路径
[root@dongjian-devops builds]# cat /etc/passwd
gitlab-runner:x:997:994:GitLab Runner:/home/gitlab-runner:/bin/bash# CI/CD流水线不正常时,运行非gitlab-runner用户所属的文件夹,进行以下命令查看
# 杀死不属于以下进程的进程号
[root@dongjian-devops ~]# ps aux | grep gitlab-runner
root      4400  0.6  0.0 153248 23900 ?        Ssl  13:01   0:00 /usr/local/bin/gitlab-runner run --working-directory /home/gitlab-runner --config /etc/gitlab-runner/config.toml --service gitlab-runner --user gitlab-runner

Gitlab和gitlab-runner安装和注册相关推荐

  1. GitLab 简易指引(二):GitLab Runner 安装与配置

    本文为[原创]文章,转载请标明出处. 原文链接:https://weyunx.com/2019/01/23... 原文出自微云的技术博客 准备工作 下载安装包 # Linux x86-64 sudo ...

  2. CICD之 gitlab和gtilab runner

    gitlab官网地址 官网文档地址 https://docs.gitlab.com/runner/install/docker.html 一.gitlab 1.gitlab安装 方式一:rpm包安装( ...

  3. 使用docker安装gitlab以及gitlab简单使用

    使用docker安装gitlab以及gitlab简单使用 docker 安装gitlab以及使用 1.创建主机映射目录 2.gitlab镜像拉取 3.运行gitlab镜像 4.配置 5.配置ssl支持 ...

  4. centos gitlab mysql_CentOS-7下yum安装GitLab-CE

    GitLab介绍 gitlab 不用说,大家都知道是做什么的,gitlab 分为 Gitlab Community Edition(gitlab社区版又称gitlab-ce).Gitlab Enter ...

  5. linux中GIT组件,GitLab在Linux下安装

    一.GitLab简介 GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务. GitLab 是利用 Ruby on Rails 一个开源的版本管 ...

  6. 手把手gitlab最详细版安装教程centos7下安装(最新版),修复gitlab

    1.服务器要求,8G内存以上,4核心cpu以上 2. 新建 /etc/yum.repos.d/gitlab_gitlab-ce.repo ,内容: [gitlab-ce] name=Gitlab CE ...

  7. Gitlab 服务器搭建,maven安装与jdk安装,linux下安装git

    Gitlab 服务器搭建 资源地址: 链接:https://pan.baidu.com/s/1SOLyixV7UkkLj0WWQqanDQ  提取码:fjcl 官网地址 首页:https://abou ...

  8. git、gitlab+jenkens版本控制的安装、升级与灾备

    文章目录 ☆1. git仓库版本管理系统 环境 Git的工作区.暂存区和版本库的含义 1.安装和配置 git 2. 创建版本库 3.git仓库添加文件 4. git 修改文件名称并提交 5. git的 ...

  9. gitlab服务器社区版安装与使用

    1.     下载 下载地址为:https://packages.gitlab.com/gitlab/gitlab-ce 下载需要版本:gitlab-ce-10.8.4-ce.0.el7.x86_64 ...

  10. Git学习二、GitLab官网,安装自己的一个私有Gitlab代码管理库

    Git学习一.TortoiseGit 安装后,文件夹前面不显示相关状态图标解决办法 Git学习二.GitLab官网,安装自己的一个私有Gitlab代码管理库 Git学习三.Git与SVN的差异,Git ...

最新文章

  1. 计算机组成微程序设计,计算机组成原理微程序设计.doc
  2. 快速提升网站SEO优化排名技巧有哪些?
  3. 绿色计算在数据中心的应用及节能效果浅析
  4. 算法--微软面试:整数的二进制表示中1的个数(Java实现)
  5. linux 查看系统版本 32位 or 64位
  6. 中奖人员信息向上滚动
  7. 区块链参考资源, 雷达 信号处理
  8. 工作区、暂存区、版本库、远程仓库
  9. 【kafka】kafka 如何开启 kafka.consumer的监控指标项
  10. Java Socket 编程
  11. ArcGIS API 4.x 加载高德底图
  12. java8新特性和汪文君Google Guava实战
  13. 航摄像片生成DSM(Pix4d)2021.5.21
  14. win10商店下载位置_win10应用商店下载的东西在哪
  15. Python 代码库之Tuple如何append添加元素
  16. LaTex 编译 bib 参考文献
  17. 相邻染色问题java_浅析一类要求相邻不同的环上染色问题
  18. 后端利用MultipartFIle类型参数接受文件上传
  19. 安捷伦自动测试软件,安捷伦精干的测试工具
  20. java8 GC日志分析

热门文章

  1. [开源] PLC梯形图转指令表的算法源代码
  2. 柯桥在PPT中如何制作翻书动画?
  3. Excel绘制折线图_基础整理
  4. noi linux 默认密码,安装NOI Linux
  5. 沟通类书籍推荐,这6本书助力你提高自身沟通能力
  6. html让网页在手机端自动横屏,Css实现手机端页面强制横屏的方法示例
  7. Excel文件批量删除指定行或列
  8. 工作频率对系统功率、穿透能力、设备体积、系统性能的影响
  9. android下利用高德地图获取经纬度等定位信息
  10. linux清理根目录空间,如何快速清理Linux磁盘空间