极狐Gitlab使用(2)

目录

1. Gitlab命令行修改管理员密码

2. Gitlab服务管理

3. 公司的开发代码提交处理流程

4. Gitlab 备份与恢复

数据备份

测试数据恢复

5. 邮箱配置


 

1. Gitlab命令行修改管理员密码

[root@tty01 ~]# gitlab-rails console -e production        # 启动GitLab的Rails控制台
--------------------------------------------------------------------------------
 Ruby:         ruby 3.1.4p223 (2023-03-30 revision 957bb7cb81) [x86_64-linux]
 GitLab:       16.11.5-jh (3a067aedcc3) EE
 GitLab Shell: 14.35.0
 PostgreSQL:   14.11
------------------------------------------------------------[ booted in 50.69s ]
Loading production environment (Rails 7.0.8.1)
irb(main):001:0> user = User.where(id: 1).first           # id为1的是超级管理员
=> #<User id:1 @root>
irb(main):002:0> user.password = 'Qq111111'               # 密码必须至少8个字符
=> "Qq111111"
irb(main):003:0> user.save!                               # 如没有问题 返回true
=> true
irb(main):004:0> exit                                     # 退出

2. Gitlab服务管理

gitlab-ctl start                        # 启动所有 gitlab 组件;
gitlab-ctl stop                         # 停止所有 gitlab 组件;
gitlab-ctl restart                      # 重启所有 gitlab 组件;
gitlab-ctl status                       # 查看服务状态;
gitlab-ctl reconfigure                  # 启动服务;
vim /etc/gitlab/gitlab.rb               # 修改默认的配置文件;
gitlab-ctl tail                         # 查看日志;

3. 公司的开发代码提交处理流程

  • 项目经理(PM)在GitLab中创建任务,分配给开发人员

    • PM使用GitLab的Issue功能创建任务,并指定任务的详细描述和要求。
    • 将任务分配给具体的开发人员,设置优先级和截止日期。
  • 开发人员领取任务后,在本地使用git clone拉取代码库

    • 开发人员在本地终端中执行命令:
      git clone <仓库地址>
    • 克隆代码库到本地开发环境。
  • 开发人员创建开发分支,并进行开发

    • 在本地创建一个新的开发分支,例如dev
      git checkout -b dev
    • dev分支上进行代码开发和修改。
  • 开发人员完成开发后,提交到本地仓库

    • 在本地提交代码修改:
      git add . git commit -m "完成任务描述"
  • 开发人员在GitLab界面上申请分支合并请求(Merge request)

    • 将本地分支推送到远程仓库:
      git push origin dev
    • 登录GitLab,在项目的Merge Requests页面中创建新的Merge Request,选择要合并的源分支和目标分支(通常是mastermain)。
  • PM在GitLab上查看提交和代码修改情况,确认无误后,确认将开发人员的分支合并到主分支

    • PM在GitLab上审查Merge Request,包括代码的改动和提交记录。
    • 如果一切正常,PM会批准Merge Request,将dev分支合并到master分支。
  • 开发人员在GitLab上Mark done确认开发完成,并关闭Issue

    • 开发人员在提交Merge Request时,可以在描述中添加close #1(其中#1是Issue编号),这样在Merge Request被合并时,相关的Issue会自动关闭。
    • 如果没有在描述中添加关闭Issue的指令,开发人员可以在Issue页面手动关闭Issue。

 

4. Gitlab 备份与恢复

查看系统版本和软件版本

[root@tty01 ~]# cat /etc/redhat-release
Rocky Linux release 9.4 (Blue Onyx)
[root@tty01 ~]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
16.11.5-jh
数据备份

 打开/etc/gitlab/gitlab.rb配置文件,查看一个和备份相关的配置项:

 

[root@tty01 ~]# vim /etc/gitlab/gitlab.rb   #启用下述两个配置项
gitlab_rails['manage_backup_path'] = true               #指定GitLab是否应该自动管理备份路径
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" #指定GitLab备份文件的存储路径

该项定义了默认备份出文件的路径,可以通过修改该配置,并执行 gitlab-ctl reconfigure 或者 gitlab-ctl restart 重启服务生效。

[root@tty01 ~]# gitlab-ctl reconfigure
或
[root@tty01 ~]# gitlab-ctl restart 

执行备份命令进行备份

[root@tty01 ~]# gitlab-rake gitlab:backup:create

 执行改命令后回有一个警告提示:gitlab.rbgitlab-secrets.json文件包含敏感数据,并未包含在此备份中。恢复备份时,需要手动备份这些文件。

当然这些也可以去结合计划任务去做。

 查看备份目录里的文件是否正常存在了

[root@tty01 ~]# ls /var/opt/gitlab/backups/
1720624341_2024_07_10_16.11.5-jh_gitlab_backup.tar

设置备份保留时常,防止每天执行备份,肯定有目录被爆满的风险,打开/etc/gitlab/gitlab.rb配置文件,找到如下配置:

[root@tty01 ~]# vim /etc/gitlab/gitlab.rb   # 启用下述两个配置项
gitlab_rails['backup_keep_time'] = 604800   # 设置备份文件过期时间,604800秒等于7天

该配置的时间以秒为单位,如果想增大或减小,可以直接在该处配置,并通过gitlab-ctl restart 重启服务生效。

备份完成,会在备份目录中生成一个当天日期的tar包。

测试数据恢复

登录一个管理用户,删除库项目

 

恢复前需要先停掉数据连接服务:  

[root@tty01 ~]# gitlab-ctl stop unicorn
[root@tty01 ~]# gitlab-ctl stop sidekiq

 如果是台新搭建的主机,一般不需要停止数据连接操作,理论上不停这两个服务也可以。停这两个服务是为了保证数据一致性。一般会将老服务器/data/gitlab/backups目录下的备份文件拷贝到新服务器上的/data/gitlab/backups去恢复,这里实验环境就在本机做恢复了。

注意权限:600权限是无权恢复的。 实验环境可改成了777,生产环境建议修改属主属组

执行命令后等待一会......,后面再输入两次yes就完成恢复了。

[root@tty01 ~]# cd /var/opt/gitlab/backups/        #进入数据备份目录
[root@tty01 backups]# gitlab-rake gitlab:backup:restore BACKUP=1720624341_2024_07_10_16.11.5-jh

注意这里BACKUP=后面的文件名,在较新的版本中,不可以使用全名,_gitlab_backup.tarh会自动加上,所以这里文件名后面那点就不能再写了。

恢复完成后,现在重启所有服务,或者只启动前方关闭的两个数据连接服务均可

[root@tty01 backups]# gitlab-ctl restart
或
[root@tty01 backups]# gitlab-ctl start unicorn
[root@tty01 backups]# gitlab-ctl start sidekiq

注意:通过备份文件恢复gitlab必须保证两台主机的gitlab版本一致,否则会提示版本不匹配  

 

此时刷新或重登账户即可看到被删除的数据

 

 

5. 邮箱配置

 其中注意修改成你的邮箱,邮件服务商,授权码,端口等信息

[root@tty01 ~]# vim /etc/gitlab/gitlab.rb  #找到并替换邮箱配置,更改你的邮箱进行测试
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "newrain_wang@163.com"
gitlab_rails['smtp_password'] = "UWYNCPQOBQFCDLIW"
gitlab_rails['smtp_domain'] = "smtp.163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = false
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_pool'] = false
gitlab_rails['gitlab_email_from'] = 'newrain_wang@163.com'

 

 设置好后保存退出,然后重载配置。

[root@tty01 ~]# gitlab-ctl reconfigure  #重新配置 GitLab 服务

登录web页面,随便登录一个用户,在之前我们用的随便填的邮箱格式,现在我们修改成自己真实的邮箱进行测试我们的邮箱配置。

 

更改点击保存后会弹出需要去邮箱点击确认进行验证

来到邮箱,可以看到发件人就是我在配置中填写的一个qq邮箱,给用户更改的邮箱发送了一个验证

点击验证会跳转一个新页面,可以看到该用户已经成功更改了邮箱

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FastAPI 学习之路(四十一)定制返回Response

接口中返回xml格式内容 from fastapi import FastAPI, Responseapp FastAPI()# ① xml app.get("/legacy") def get_legacy_data():data """<?xml version"1.0"?><shampoo><Header>Apply shampoo here.</Header&…

Day1每日编程题日记:数字统计、两个数组的交集、点击消除

前言&#xff1a;该篇用于记录自看。曾回看昨天的做题代码&#xff0c;竟然会觉得陌生&#xff0c;这竟然是我写的&#xff0c;细细读了一下&#xff0c;原来我当时是这么想的。因此我觉得记代码没有实际用处&#xff0c;重点是领悟了思想&#xff0c;这样子代码就在心中&#…

java虚拟机

JVM的运行机制 运行过程 Java源文件被编译器编译成字节码文件JVM将字节码文件编译成相应操作系统的机器码机器码调用相应操作系统的本地方法库执行相应的方法 类加载器用于将编译好的.Class文件加载到JVM中即时编译器&#xff1a;将Java字节码编译成具体的机器码 多线程 JV…

小米开放式耳机怎么样?小米、西圣、漫步者王者pk测评角逐

我们常说的开放式耳机&#xff0c;就是一种采用开放式设计的音频设备&#xff0c;能够给用户带来更加自然且广阔的音质体验&#xff0c;相比与传统的入耳式耳机&#xff0c;开放式耳机无需入耳&#xff0c;在佩戴方面更加的舒适&#xff0c;在音质方面开放式耳机的听感会更加自…

Flat Ads:金融APP海外广告投放素材的优化指南

在当今全球化的数字营销环境中,金融APP的海外营销推广已成为众多金融机构与开发者最为关注的环节之一。面对不同地域、文化及用户习惯的挑战,如何优化广告素材,以吸引目标受众的注意并促成有效转化,成为了广告主们亟待解决的问题。 作为领先的全球化营销推广平台,Flat Ads凭借…

如何保证语音芯片的稳定性能和延长使用寿命

要让语音芯片保持稳定性能&#xff0c;首先需要深入理解其工作原理和内部构造。语音芯片&#xff0c;作为现代电子设备中的核心组件之一&#xff0c;承载着声音信号的处理与输出功能。为了确保其稳定运行&#xff0c;我们需要从多个方面进行细致的考虑和操作。‌ 1、避免长期高…

【数据结构】初探数据结构面纱:栈和队列全面剖析

【数据结构】初探数据结构面纱&#xff1a;栈和队列全面剖析 &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;数据结构 文章目录 【数据结构】初探数据结构面纱&#xff1a;栈和队列全面剖析前言一.栈1.1栈的概念及结构1.2栈的结构选择1.3栈的…

数据结构(3.9_1)——特殊矩阵的压缩存储

总览 一维数组的存储结构 如果下标从1开始&#xff0c;则a[i]的存放地址LOC (i-1)*sizeof(ElemType); 二维数组的存储 二维数组也具有随机存储的特性 设起始地址为LOC 在M行N列的二维数组b[M][N]中&#xff0c;若按行优先存储&#xff0c; 则b[i][j]的存储地址的LOC (i*…

【JVM】对象的生命周期一 | 对象的创建与存储

Java | 对象的生命周期1-对象的创建与存储 文章目录 前言对象的创建过程内存空间的分配方式方式1 | 指针碰撞方式2 | 空闲列表 线程安全问题 | 避免空间冲突的方式方式1 | 同步处理&#xff08;加锁)方式2 | 本地线程分配缓存 对象的内存布局Part1 | 对象头Mark Word类型指针 P…

文献翻译与阅读《Integration Approaches for Heterogeneous Big Data: A Survey》

CYBERNETICS AND INFORMATION TECHNOLOGIES’24 论文原文下载地址&#xff1a;原文下载 目录 1 引言 2 大数据概述 3 大数据的异构性 4 讨论整合方法 4.1 大数据仓库&#xff08;BDW&#xff09; 4.2 大数据联盟&#xff08;BDF&#xff09; 5 DW 和 DF 方法的比较、分…

智充科技营收增速放缓:经营成本飙升,应收账款大幅增长

《港湾商业观察》黄懿 6月10日&#xff0c; XCHG Limited 智能充电有限公司(下称&#xff1a;智充科技)在美国证监会(SEC)更新招股书&#xff0c;拟在美国纳斯达克上市&#xff0c;其股票代码为“XCH”。北京智充科技有限公司为其国内运营主体&#xff08;下称“北京智充科技”…

IC后端设计中的shrink系数设置方法

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 在一些成熟的工艺节点通过shrink的方式(光照过程中缩小特征尺寸比例)得到了半节点,比如40nm从45nm shrink得到,28nm从32nm shrink得到,由于半节点的性能更优异,成本又低,漏电等不利因素也可以…

C++学习

一、注释 /*多行 。。。 。。。 注释*/ //单行注释 #include <iostream> using namespace std; int main() {cout << "hellow" << endl;system("pause");return 0; }二、变量定义 #include <iostream> using namespace std; int…

YOLOv8改进 | 注意力机制| 利用并行子网络构建深度较浅但性能卓越的网络【全网独家】

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录 &#xff1a;《YOLOv8改进有效…

[PM]原型与交互设计

原型分类 1.草图原型 手绘图稿, 规划的早期,整理思路会使用 2.低保真原型 简单交互, 无需配色, 黑白灰为主, 产品规划和评审阶段使用 标准化的低保真原型是高保真原型的基础 3.高保真原型 复杂交互, 一般用于公开演示, 产品先产出低保真原型, 设计师根据原型产出设计稿 低保…

【ARM】CCI缓存一致性整理

目录 1.CCI500提供的功能 2.CCI500在SOC系统中所处的位置​编辑 3.CCI500内部结构​编辑 4.功能描述 1.CCI500提供的功能 2.CCI500在SOC系统中所处的位置 3.CCI500内部结构 Transaction Tracker&#xff08;TT&#xff09;是用来解决一致性和ordering问题的&#xff0c;它…

【驱动篇】龙芯LS2K0300之spi设备驱动

实验介绍 GC9A01是一款小巧&#xff08;1.28寸&#xff09;、彩色&#xff08;分辨率为 240 * 240 RGB&#xff09;圆形TFT屏幕&#xff0c;它采用4线 SPI的控制方式&#xff0c;电源供电电压为3.3V&#xff0c;有7个控制引脚&#xff1b;本次实验将使用它来验证龙芯SOC的SPI通…

css实现图片渐变切换效果

一、效果 使用csskeyframes&#xff0c;实现5个图片渐变切换的效果。如下图&#xff1a; 二、代码 1.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"w…

头歌资源库(27)特别的数

一、 问题描述 编程输出一个特别的数&#xff0c;该数是一个由1~9组成的9位数&#xff0c;每个数字只能出现一次&#xff0c;且这个9位数由高位到低位前i位能被i整除。 二、算法思想 创建一个长度为9的数组&#xff0c;用于存放1~9这9个数字。使用回溯算法&#xff0c;从第…

(WRF-UCM)高精度城市化气象动力模拟技术

气候变化及应对是政府、科学界及商业界关注的焦点。气候是多个领域&#xff08;生态、水资源、风资源及碳中和等问题&#xff09;的主要驱动因素&#xff0c;合理认知气候变化有利于解释生态环境变化机理及过程&#xff0c;而了解现在、未来气候变化则是进行生态、环境及能源评…