Gitlab和gitlab-runner安装和注册

article/2025/10/15 4:23:16

目录

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


http://chatgpt.dhexx.cn/article/IvXwHVHR.shtml

相关文章

gitlab如何创建用户并登录

为了大家后期能方便创建用户和使用gitlab,先给大家设置为中文 设置为中文后保存然后刷新页面即可设置为中文 接下来教大家怎么创建git用户并进行登录 创建完用户后需要配置一次密码 配置完密码后退出用户测试进行新用户登录 这里用刚创建的新用户来登录 第一次登…

Gitlab-Runner安装并注册

本文介绍Gitlab-Runner的安装运行(包括docker方式安装运行及二进制直接运行),并介绍如何将Gitlab注册到Gitlab。同时还介绍了gitlab-runner的一些常用操作命令。 安装Gitlab-Runner gitlab-runner可以使用docker方式运行,也可以在…

通过docker搭建gitlab

通过docker搭建gitlab 一、安装 拉取docker镜像 docker pull gitlab/gitlab-ce启动容器 docker run -d -p 4443:443 -p 8080:80 -p 222:22 --name gitlab --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/dat…

gitlab-runner 注册失败

问题: 用docker启动gitlab-runner,注册runner 时报错:PANIC: Failed to register the runner. You may be having network problems。 不仅如此,我用gitlab-runner verify命令,也是报错:ERROR: Verifying r…

gitlab:(二)gitlab注册用户和邀请进入项目的问题

.新注册用户无法在管理员界面激活 在管理员界面无法进行管理,找不到相关的操作界面 当前gitlab版本 尝试降低gitlab版本 卸载之后删除残留文件 安装指定的低版本:gitlab-ce-12.7.5-ce.0.el7.x86_64.rpm yum install policycoreutils openssh-server op…

注册gitlab-runner

注册gitlab-runner 一、注册gitlab-runner(shared)二、注册gitlab-runner(group)三、注册gitlab-runner(specific) 使用管理员账号登录gitlab 一、注册gitlab-runner(shared) shared类型的gitlab-runner会运行整个gitlab平台项目中的作业; 二、注册gitlab-runne…

gitLab注册There was an error with the reCAPTCHA. Please solve the reCAPTCHA again.

目录 解决方案:第一步:第二步: Gitlab注册时报错:There was an error with the reCAPTCHA. Please solve the reCAPTCHA again. 今天注册时碰到以下问题: 提交后,给出如下图示 上面的错误是因为注册时有一…

gitlab-runner配置与注册

(1)启动gitlab-runner #创建volume docker volume create gitlab-runner-my-config #docker启动runner docker run -d --name gitlab-my-runner --restart always --nethost \-v /var/run/docker.sock:/var/run/docker.sock \-v gitlab-runner-my-conf…

gitLab账号注册,登陆,配置SSH,验证

文章目录 前言注册账号登陆添加SSH验证配置 前言 本文主要目的是讲述gitlab账号注册,登陆功能,以及如何生成ssh key,并添加ssh key到gitlab中。通过git工具将gitlab上的代码拉取到本地来验证ssh功能是否进行了有效的配置 注册账号 第一步&…

Servlet 过滤器( Filter )

Servlet 过滤器( Filter ) 原理图: 过滤器的使用场景 登录权限验证、资源访问权限控制、敏感词汇过滤、字符编码转换过滤器的优势 便于代码重用,不必每个servlet中还要进行相应的操作配置方式 web配置方式 <!--过滤器的xml配置 --> <filter><!--名称-->…

servlet过滤器中的注解配置详解

文章目录 注解配置WebFilter中的属性1. urlPatterns2. initParams3. dispatcherTypes 多个过滤器的执行顺序销毁阶段的触发机制 注解配置WebFilter中的属性 1. urlPatterns 指定一组过滤器的 URL 匹配模式。等价于 标签。 例1&#xff1a;将所有的请求都过滤掉 配置如果是指定…

Servlet过滤器与SpringMVC拦截器

Servlet API中提供了一个Filter接口&#xff0c;开发web应用时&#xff0c;如果编写的Java类实现了这个接口&#xff0c;则把这个java类称之为过滤器Filter。Web开发人员通过Filter技术&#xff0c;对web服务器管理的所有web资源&#xff1a;例如Jsp, Servlet, 静态图片文件或静…

JavaWeb Servlet过滤器概述

Servlet过滤器 1、什么是过滤器 Servlet过滤器具有拦截浏览器端请求的功能&#xff0c;Servlet过滤器可以改变请求中的内容来满足实际开发中的需求。 实质上Servlet过滤器就是在web应用服务器中的一个web应用组件&#xff0c;用于拦截浏览器与目标资源的请求&#xff0c;并对…

Servlet+过滤器

一、Servlet 1.1 概念 Servlet&#xff1a;Server Applet的简称&#xff0c;是服务器端的程序&#xff08;代码、功能实现&#xff09;&#xff0c;可交互式的处理客户端发送到服务端的请求&#xff0c;并完成操作响应。动态网页技术JavaWeb程序开发的基础&#xff0c;JavaEE…

java servlet过滤器简解及实例

在整个概念中&#xff0c;个人觉得有一篇文章写得不错&#xff0c;通俗易懂&#xff0c;这里就直接套用以上原博文&#xff0c; 一、概念&#xff1a; Filter也称之为过滤器&#xff0c;它是Servlet技术中比较激动人心的技术&#xff0c;WEB开发人员通过Filter技术&#xff0c;…

Servlet过滤器案例-自动登录

使用过滤器实现自动登录 登录的jsp页面 <% page language"java" import"java.util.*" pageEncoding"UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head> <title&g…

Servlet过滤器拦截器

文章目录 1、什么是Servlet&#xff1f;2、过滤器与拦截器的区别 1、什么是Servlet&#xff1f; 参考&#xff1a;https://blog.csdn.net/wozaibohaibian/article/details/124778494 ​ servlet就是一个组件,需要符合servlet规范,并且需要部署到servlet容器里面才能运行 注&…

servlet过滤器原理及使用

原理 首先了解什么是过滤器&#xff0c;各种文章已经写的很清楚了 引用来自这篇大牛的博客 是Servlet技术中最激动人心的技术&#xff0c;WEB开发人员通过Filter技术&#xff0c;对web服务器管理的所有web资源&#xff1a;例如Jsp, Servlet, 静态图片文件或静态 html 文件等进…

Servlet——过滤器

Servlet过滤器 什么是过滤器 过滤器是一个程序&#xff0c;它先于与之相关的Servlet页面运行在服务器上&#xff0c;但它并不是一个标准的Servlet&#xff0c;它不能处理用户请求&#xff0c;也不能对客户端生成响应。它主要用于对HttpServletRequest进行预处理&#xff0c;也…

servlet过滤器的简单使用

为什么要用过滤器或者拦截器&#xff1f; 简单来讲&#xff0c;当一个账户需要进入某个系统调用某个接口时&#xff0c;我们需要对其进行相应验证&#xff0c;否则一旦接口暴露&#xff0c;可能会造成系统崩溃。这个时候我们就需要用拦截器对调用接口一方进行身份验证。 serv…