GitLab管理员常用配置及设置汇总


之前在 虚拟机Ubuntu 22.04上搭建GitLab操作步骤 上介绍了在Ubuntu 22.04上如何搭建社区版的GitLab,这里整理下作为GitLab管理员时在搭建完GitLab CE后,如何对其进行配置或设置

  • 更改仓库存储位置:切换到root用户下操作
    • 默认存放位置:/var/opt/gitlab/git-data/repositories
    • 自定义存放位置:/home/gitlab/git-data
    • 修改配置文件/etc/gitlab/gitlab.rb,取消对git_data_dirs的注释,调整为
      git_data_dirs({"default" => {"path" => "/home/gitlab/git-data"}
      })
      
    • 依次执行如下命令
      mkdir -p /home/gitlab/git-data
      chown -R git:git /home/gitlab/git-data
      gitlab-ctl stop
      gitlab-ctl reconfigure
      gitlab-ctl start
      
      • 若默认存放路径中已存在项目,则需要将已存在的所有项目(@hashed目录下所有内容)拷贝到新指定的@hashed目录下
      • 若出现storage_directory[/home/spring/gitlab/…](gitlab::gitlab-rails line 104) had an error: Mixlib::ShellOut::ShellCommandFailed类似错误,则需要设置/home/gitlab目录也为git用户,即执行如下命令:
        chown -R git:git /home/gitlab
        
      • 在/home/gitlab/git-data目录下会生成repositories目录
  • 更改仓库备份位置:切换到root用户下操作
    • 默认备份文件存储位置:/var/opt/gitlab/backups
    • 自定义存放位置:/home/gitlab/backups
    • 修改配置文件/etc/gitlab/gitlab.rb,取消对gitlab_rails[‘backup_path’]的注释,调整为:
      gitlab_rails['backup_path'] = "/home/gitlab/backups"
      
    • 依次执行如下命令
      mkdir -p /home/gitlab/backups
      chown -R git:git /home/gitlab/backups
      gitlab-ctl stop
      gitlab-ctl reconfigure
      gitlab-ctl start
      
  • 仓库备份(两块硬盘数据同步):在root用户下操纵
    • GitLab完整备份,执行如下其中一条命令
      gitlab-rake gitlab:backup:create # gitlab 12.2以下版本
      gitlab-backup create # gitlab 12.2以上版本
      
      • 会在设置的备份文件存储路径/home/gitlab/backups下生成.tar文件,如1719565848_2024_06_28_17.1.1_gitlab_backup.tar
    • 其它需要备份的文件
      • /etc/gitlab/gitlab.rb # 配置文件
      • /etc/gitlab/gitlab-secrets.json # 数据库加密密钥等
      • /var/opt/gitlab/nginx/conf # nginx配置文件
      • /etc/postfix/main.cfpostfix # 邮件配置
    • 自动备份
      • 编辑crontab文件,执行:crontab -e,编辑文件内容如下,每晚12点执行备份
        0 0 * * * gitlab-backup create
        0 0 * * * cp /etc/gitlab/gitlab.rb /home/gitlab/backups/
        0 0 * * * cp /etc/gitlab/gitlab-secrets.json /home/gitlab/backups/
        0 0 * * * cp -a /var/opt/gitlab/nginx/conf /home/gitlab/backups/
        
      • 重启crontab服务,执行如下命令
        service cron restart
        
      • 注:备份时需要保持GitLab处于正常运行状态
    • 设置备份过期时间
      • 打开/etc/gitlab/gitlab.rb文件,取消对gitlab_rails[‘backup_keep_time’]的注释,调整为如下内容:以秒为单位,设置希望保留每个备份的秒数,这里设置为保存30天
        gitlab_rails['backup_keep_time'] = 2592000
        
      • 依次执行如下命令
        gitlab-ctl stop
        gitlab-ctl reconfigure
        gitlab-ctl start
        
    • GitLab备份恢复,依次执行如下命令
      gitlab-ctl stop unicorn # 停止相关数据连接服务
      gitlab-ctl stop sidekiq
      gitlab-rake gitlab:backup:restore BACKUP=1719565848_2024_06_28_17.1.1 # 编号,1719565848_2024_06_28_17.1.1_gitlab_backup.tar,输入两次yes
      gitlab-ctl start
      
      • 注:GitLab版本号要相同
  • GitLab迁移
    • 在新服务器上安装相同版本的GitLab
    • 将备份生成的备份文件拷贝到新服务器的相同目录下
  • 添加新用户
    • 进入:http://192.168.18.215/admin , 点击:Overview --> Dashboard
      • 点击 New user: 填写Name, Username, Email,如Name:fengbingchun; Username: fengbingchun; Email: fengbingchun@163.com
        • 取消勾选:can create top level group
        • Projects limit: 若设置为0,则新用户不允许创建项目
        • 点击 Create user
      • 点击Edit进入后:设置密码、也可重新编辑用户
    • 注:新用户首次登录,要求修改密码
  • 编辑用户
    • 进入:http://192.168.18.215/admin , 点击:Overview --> Dashboard --> Latest users
      • 点击要编辑的用户,点击Edit
      • 修改,然后点击Save changes
  • 删除用户
    • 进入:http://192.168.18.215/admin , 点击:Overview --> Dashboard --> Latest users
      • 点击要删除的用户,点击三个"竖点",点击"Delete user"
      • 需要确认,根据提示输入,然后点击Delete suer按钮
    • 注:删除用户后无法撤销或恢复,可用Block user替代
  • 添加新组
    • 进入:http://192.168.18.215/admin , 点击:Overview --> Groups --> New group
      • Group name:如soft
      • 其它项使用默认
      • 点击Create group
      • 一个组是多个项目的集合
      • 每个部门可创建一个组,部门下的项目全放在此组下
      • 组的成员只能查看他们有权访问的项目
      • 现有的项目可以移动到组中
  • 创建新项目
    • 左键点击用户图标左侧的"+" --> 点击New project/repository --> 点击Create blank project
      • Project name: 如test
      • Project URL:如果此项目是某个组中的,则点击Pick a group or namespace,选择一个组;否则此项目不属于任何组
      • 其它使用默认
      • 点击Create project
  • 将用户添加到项目
    • 进入到项目:点击Manage --> Members: 点击Invite members
      • Username,name or email address:已存在的用户
      • Select a role: 一般为Developer或Maintainer
      • 点击Invite
    • 注:角色(role)如果为Developer则默认不能向protected分支提交code
  • 设置/取消指定分支为protected
    • 进入项目页:Settings --> Repository --> Protected branches:点击Expand:
      • 取消protected: 点击指定分支为Unprotect
      • 设置protected: 点击Add protected branch
        • Branch:选择一个分支
        • Allowed to merge:一般选择Maintainers角色
        • Allowed to push and merge:一般选择Maintainers角色
        • 点击Protect
    • 注:默认受保护分支不允许Developer直接push code,也没有merge权限
  • 取消merge后增加的新的commit ID
    • 提交merge request时勾选squash commits when merge request is accepted或merge时勾选squash commit:好像不起作用
    • 调整GitLab的默认merge策略:进入项目
      • Settings --> Merge requests: 勾选:Fast-forward merge,默认勾选的是Merge commit: 点击Save changes
  • 设置未登录用户的默认语言为中文
    • 进入:http://192.168.18.215/admin , 点击:Settings --> Preferences --> Localization
    • Default language:选择Chinese, Simplified - 简体中文(92% translated)
    • 点击 Save changes
  • 设置用户在没有活动的情况下保持登录的时间,如设置为5分钟
    • 进入:http://192.168.18.215/admin , 点击:Settings --> General
    • Session duration(minutes):5
    • 点击 Save changes
    • 依次执行如下命令
      gitlab-ctl stop
      gitlab-ctl reconfigure
      gitlab-ctl start
      
  • GitLab Web界面显示中文:每个用户单独设置
    • 进入主页后,点击用户头像,然后点击"preferences"
      • Localization: Language:选择Chinese, Simplified - 简体中文(92% translated)
      • 点击 Save changes
      • 刷新页面即可
  • GitLab同个账号不能同时登录多个PC机:每个用户单独操作
    • 可通过撤销非本机的Active Sessions来防止登录多个PC机
      • 点击用户图标 --> Preferences --> Active Sessions:移除掉非当前session的所有其它项
  • 双重认证(two-factor authentication(2FA)):每个用户单独操作
    • 获取验证码
      • 手机应用商店上安装Authenticator,由微软开发
      • 登录GitLab: 点击用户图标 --> Preferences --> Account --> 点击"Enable two-factor authentication"
      • 打开手机的Authenticator,扫描二维码
      • 输入current password
      • 输入verification code:Authenticator显示的一次性密码代码,长度为6位,每30秒更新一次
      • 保存或下载恢复码:点击Copy codes或Download codes,保存的文件名为gitlab-recovery-codes.txt,此文件非常重要,在收不到验证码时,可使用此恢复,并且只能使用一次
      • 点击Proceed
    • 设置Tokens: 点击用户图标 --> Preferences --> Access Tokens:启用双重认证后,git clone/pull/push code时,需要使用token作为密码
      • 点击"Add new token"
      • 填写Token name:可任意填写,如test
      • 填写Expiration date:最长截止日期为1年
      • Select scopes:必须勾选read_repository和write_repository
      • 点击"Create personal access token"
      • 复制保存个人token
    • 注:首次clone代码时,需要填写用户名和密码,此密码为个人token而不是登录密码
  • 取消双重认证:每个用户单独操作
    • 点击用户图标 --> Preferences --> Account:点击Manage two-factor authentication
    • Disable two-factor authentication: 输入用户密码,点击Disable two-factor authentication,再点击Disnable
  • 关闭Auto DevOps
    • 进入:http://192.168.18.215/admin , Settings --> CI/CD
    • 点击"Continuous Integration and Deployment":
    • 取消勾选:Default to Auto DevOps pipeline for all projects、Enable instance runners for new projects
    • 点击 Save changes
  • 管理员常用设置汇总
    • 新建项目、新建用户、新建群组
    • 编辑/删除所有项目、编辑/删除用户、编辑/删除群组
    • 监控:系统信息(可查看CPU数、内存使用情况、磁盘使用情况)、后台任务、运行状况检查
    • 项目的可见性与访问控制
    • 设置用户是否可创建项目及可创建的数目(默认为100000)以及是否允许用户创建顶级群组
    • 设置项目创建期间可从GitHub、Bitbucket源导入
    • 设置项目中支持的单个文件的最大大小,默认为100MiB
    • 设置新用户最小密码长度、是否需电子邮件确认
    • 设置是否强制执行双重认证
    • 设置新项目默认分支名称、默认分支保护、允许向保护分支push的角色(Developers、Maintainers)
    • 设置未登录用户的默认语言
    • 设置会话持续时间(用户在没有活动的情况下保持登录的时间)
  • 注:
    • GitLab使用的是UTC时间,即GitLab Web端显示的是UTC时间:UTC+8小时=北京时间
    • 不要在非个人机上clone code时输入个人GitLab用户名和密码,会被Git的凭证助手记录(Git Credential Manager),删除此凭证
      • windows:
        • 控制面板 --> 用户账户 --> 凭据管理器 --> 管理Windows凭据 --> 找到git:http://192.168.18.215: 将其删除
        • 若有~/.git-credentials文件,将其删除
      • ubuntu:若有~/.git-credentials文件,将其删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/43113.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SSL 证书

自动获取 Lets Encrypt 免费证书 (适用于 Linux 系统) 安装 Certbot sudo apt-get update sudo apt-get install certbot python3-certbot-nginx # Nginx 服务器 sudo apt-get install certbot python3-certbot-apache # Apache 服务器 获取和安装证…

小米rdemi红米ax3000t刷机 20240707最新配套完整程序整理合集

小米rdemi红米ax3000t刷机程序地址: https://www.123pan.com/s/LA1bVv-EOzVv.html 小米路由器SSH密码计算器 https://www.1234f.com/fuwu/ax3000t/ 最新更新地址:https://www.1234f.com/fuwu/openwrt/ 依次输入如下命令: curl -X POST h…

Leetcode 295.数据流的中位数

295.数据流的中位数 问题描述 中位数是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。 例如 arr [2,3,4] 的中位数是 3 。例如 arr [2,3] 的中位数是 (2 3) / 2 2.5 。 实现 MedianFinder 类: Media…

算法013:水果成篮

水果成篮. - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/fruit-into-baskets/ 这道题题目很长,仔细阅读过后,我们其实可以简化成&#xff…

MySQL 9.0新特性:向量存储

MySQL 9.0 正式版已经发布,其中一个亮点就是向量(VECTOR)数据类型的支持,本文给大家详细介绍一下这个新功能。 向量类型 MySQL 9.0 增加了一个新的向量数据类型:VECTOR。它是一种可以存储 N 个数据项的数据结构&…

Redis Stream:实时数据流的处理与存储

Redis Stream:实时数据流的处理与存储 引言 在当今数据驱动的世界中,实时数据处理和存储成为了许多应用的核心需求。Redis Stream作为一种新兴的数据结构,为Redis带来了强大的流处理能力。本文将深入探讨Redis Stream的特点、使用场景以及如何高效地利用它来处理实时数据流…

聚焦数字创新,定义影像未来

国际数字影像产业园在明确产业定位与发展方向时,应聚焦于数字影像、文创、媒体等新兴产业领域,以技术创新为核心动力、产业升级为保障、市场拓展为途径、国际化发展为方向,推动园区的持续健康发展。 作为园区的核心产业,数字影像产…

python socks5代理的使用

需要安装依赖 1、解决方法1 In order to make requests use socks proxy, you need to install it with it’s dependency. pip install requests[socks]2、解决方法2 pip install PySocks

第二证券股市知识:股票填权是怎么回事?利好还是利空?

1、股票填权的含义 股票填权是指在除权除息之后的一段时刻内,假设多数投资者看好该个股,股票的价格超过除权除息的基准价就叫做填权。上市公司假设能持续分红,就会向市场传递积极信号,招引更多投资者买入,越来越多的投…

使用Livox-Mid360激光雷达,复现FAST_LIO(保姆级教程)

前面我已经完成了mid360激光雷达的驱动安装,octomap的复现,昨天我去把这俩在正式环境中实测了一下,效果不好,走廊转角没建出来,我查了一下,应该是TF的原因,但这部分我还不太懂,看到有…

云计算【第一阶段(28)】DNS域名解析服务

一、DNS解析的定义与作用 1.1、DNS解析的定义 DNS解析(Domain Name System Resolution)是互联网服务中的一个核心环节,它负责将用户容易记住的域名转换成网络设备能够识别和使用的IP地址。一般来讲域名比 IP 地址更加的有含义、也更容易记住…

2024世界人工智能大会:deepin引领AI与操作系统融合新时代

内容来源:deepin(深度)社区 7月4日,WAIC 2024在上海拉开帷幕。大会围绕核心技术、智能终端、应用赋能三大板块,聚焦大模型、算力、机器人、自动驾驶等重点领域,集中展示一批“人工智能”创新应用最新成果。…

【web前端HTML+CSS+JS】--- JS学习笔记03

一、JS介绍 可以在前端页面上进行逻辑处理,来解决表单的验证等问题,提升效率,直接在前端提示问题,减少服务器压力 应用1:可以做静态验证和动态验证(进行异步请求) 应用2:可以解析后…

monad理解

每个学习monad的人都要写一份自己理解的monad。然后还是包括自己没人能看到自己在写啥,而且大部分写的还是错误的。 距离学习monad有接近2周了,已经挺模糊了。 monad我理解有两个基本作用: 1. 能够对全部的返回值做链式调用。只能封装成mona…

学习数据库2

在数据库中创建一个表student,用于存储学生信息 查看建表结果 向student表中添加一条新记录 记录中id字段的值为1,name字段的值为"monkey",grade字段的值为98.5 并查看结果 向student表中添加多条新记录 2,"bob"…

鸿蒙开发小案例(名片管理))

鸿蒙开发小案例(名片管理) 1、页面效果1.1 初始页面1.2 点击名片展开1.3 点击收藏1.4 点击编辑按钮 2、实现代码2.1 DataModel.ets2.2 RandomUtil.ets2.3 ContactList.ets 1、页面效果 1.1 初始页面 1.2 点击名片展开 1.3 点击收藏 1.4 点击编辑按钮 2、…

百度、谷歌、必应收录个人博客网站

主要是给各个搜索引擎提交你的sitemap文件,让别人能搜到你博客的内容。 主题使用的Butterfly。 生成sitemap 安装自动生成sitemap插件。 npm install hexo-generator-sitemap --save npm install hexo-generator-baidu-sitemap --save在站点配置文件_config.yml…

【手撕数据结构】卸甲时/空间复杂度

目录 前言时间复杂度概念⼤O的渐进表⽰法小试牛刀 空间复杂度 前言 要想知道什么是空/时间复杂度,就得知道什么是数据结构。 这得分两层来理解。我们生活中处处存在数据,什么抖音热点上的国际大事,什么懂的都懂的雍正卸甲等等一系列我们用户看得到的&a…

鸿蒙语言基础类库:【@ohos.url (URL字符串解析)】

URL字符串解析 说明: 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 导入…

【K8s】专题六(5):Kubernetes 稳定性之重启策略、滚动更新策略

以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发!欢迎扫码关注个人公众号! 目录 一、重启策略 1、基本介绍 2、资源清单(示例) 二、滚动更新策略 …