极狐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) EEGitLab Shell: 14.35.0PostgreSQL:   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.mzph.cn/news/870057.shtml

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

相关文章

Docker 日志丢失 - 解决方案

Docker 日志默认使用的是 journald 的方式. RateLimitBurst 是 journald 的一个参数&#xff0c;用于限制日志的速率。如果日志的生成速度超过这个限制&#xff0c;journald 可能会丢弃日志。你可以通过调整这个参数来避免日志被丢弃。 调整 RateLimitBurst 和 RateLimitInte…

C++ 入门06:类的进阶(构造函数的重载与拷贝构造函数)

往期回顾&#xff1a; C 入门03&#xff1a;函数与作用域-CSDN博客C 入门04&#xff1a;数组与字符串-CSDN博客C 入门05&#xff1a;类和对象-CSDN博客 一、前言 在前面文章的学习中&#xff0c;我们了解了 C 的基本结构、变量、输入输出、控制结构、循环、函数、作用域、数组…

windows USB 设备驱动开发-USB电源管理(一)

符合通用串行总线 (USB) 规范的 USB 设备的电源管理功能具有一组丰富而复杂的电源管理功能。 请务必了解这些功能如何与 Windows 驱动程序模型 (WDM) 交互&#xff0c;特别是 Microsoft Windows 如何调整标准 USB 功能以支持系统唤醒体系结构。 基于内核模式驱动程序框架的 US…

图像到文本的桥梁:Transformer模型的创新应用

图像到文本的桥梁&#xff1a;Transformer模型的创新应用 在人工智能领域&#xff0c;Transformer模型以其卓越的性能在自然语言处理&#xff08;NLP&#xff09;任务中占据了重要地位。然而&#xff0c;Transformer的潜力并不局限于文本&#xff0c;它在图像到文本转换&#…

2024年06月CCF-GESP编程能力等级认证Python编程四级真题解析

本文收录于专栏《Python等级认证CCF-GESP真题解析》,专栏总目录:点这里,订阅后可阅读专栏内所有文章。 一、单选题(每题 2 分,共 30 分) 第 1 题 小杨父母带他到某培训机构给他报名参加CCF组织的GESP认证考试的第1级,那他可以选择的认证语言有几种?( ) A. 1 B. 2 C…

React文档内网搭建

React文档内网搭建流程 官网地址 官网中文地址 通过官网我们可以找到React的github存储库 ReactGitHub 在介绍中可以找到对应的文档存储库 React文档存储库 此存储库是英文文档地址,我们通过中文文档地址以及该存储库作者目录下找到中文存储库 React文档中文存储库 下载…

VIM三种模式的操作

目录 1. 普通模式 1.1 复制粘贴 1.2 移动光标 1.3 撤回 1.4 删除 2. 编辑模式 3. 命令模式 3.1 保存并退出 3.2 强制执行 3.3 显示/取消行号 3.4 搜索文本 3.5 取消高亮 3.6 全局替换 1. 普通模式 1.1 复制粘贴 &#xff08;1&#xff09;鼠标选中双击&am…

13个Python自动化实战脚本

1、批量文件重命名神器在工作中&#xff0c;我们常常需要对大量文件进行批量重命名&#xff0c;Python帮你轻松搞定&#xff01; 2、自动发送邮件通知告别手动发送&#xff0c;用Python编写定时发送邮件的自动化脚本。 3、定时任务自动化执行使用Python调度库&#xff0c;实现定…

高盛开源的量化金融 Python 库

GS Quant GS Quant是用于量化金融的Python工具包&#xff0c;建立在世界上最强大的风险转移平台之一之上。旨在加速量化交易策略和风险管理解决方案的开发&#xff0c;凭借25年的全球市场经验精心打造。 它由高盛的定量开发人员&#xff08;定量&#xff09;创建和维护&#…

2024.7.10刷题记录

目录 一、1001-[NOIP2007]字符串的展开 二、1003-[NOIP2010]机器翻译 三、853. 有边数限制的最短路 - AcWing题库 bellman_ford算法 四、851. spfa求最短路 - AcWing题库 spfa算法 一、1001-[NOIP2007]字符串的展开 p1, p2, p3 map(int, input().split()) st input() n…

qt 读写json格式的配置文件

要点 QJsonObject QJsonDocumentQFile file(fileName);file.write(jsonDoc.toJson(QJsonDocument::Indented)); // 缩进格式化输出QByteArray jsonData file.readAll(); 在 Qt 中&#xff0c;读写 JSON 格式的配置文件通常使用 QJsonDocument、QJsonObject、QJsonArray 和 Q…

云开发技术的壁纸小程序源码,无需服务期无需域名

1、本款小程序为云开发版本&#xff0c;不需要服务器域名 2、文件内有图文搭建教程&#xff0c;小白也不用担心不会搭建。 3、本程序反应速度极快&#xff0c;拥有用户投稿、积分系统帮助各位老板更多盈利。 4、独家动态壁纸在线下载&#xff0c;给用户更多的选择 5、最新版套图…

Open3D 点云配准精度评价指标-RMSE

目录 一、概述 1.1RMSE的计算方法 1.2RMSE的评价标准 二、代码实现 三、实现效果 3.1原始点云 3.2计算数据 一、概述 均方根误差(RMSE, Root Mean Squared Error)是衡量两个点云之间平均误差的一个常用指标。它通过计算匹配点对之间距离的平方和的平方根,来…

有必要找第三方软件测评公司吗?如何选择靠谱软件测评机构?

软件测试是确保软件质量的重要环节&#xff0c;而在进行软件测试时&#xff0c;是否有必要找第三方软件测评公司呢?第三方软件测评公司是指独立于软件开发公司和用户之间的中立机构&#xff0c;专门从事软件测试和测评工作。与自身开发团队或内部测试团队相比&#xff0c;选择…

计算机的错误计算(二十七)

摘要 介绍错数&#xff1a;任给一个单变元函数&#xff0c;当自变量被截断时&#xff0c;函数值中含有的错误的有效数字个数&#xff0c;并给出其计算方法。 首先&#xff0c;从字面上看&#xff0c;错数表示错误的有效数字个数。 下面从一个略显粗糙的化简过程&#xff0c;推…

每天一个数据分析题(四百二十)- 一元线性回归模型

现在通过参数估计得到一个一元线性回归模型为y 3x4&#xff0c;在回归系数检验中下列说法错误的是&#xff08; &#xff09; A. 检验统计量是t统计量 B. 原假设是β13 C. 若拒绝原假设&#xff0c;就认为自变量与因变量存在显著的线性关系 D. 可以用P值与显著性水平比较结…

网络安全防御【防火墙安全策略用户认证综合实验】

目录 一、实验拓扑图 二、实验要求 三、实验思路 四、实验步骤 1、打开ensp防火墙的web服务&#xff08;带内管理的工作模式&#xff09; 2、在FW1的web网页中网络相关配置 3、交换机LSW6&#xff08;总公司&#xff09;的相关配置&#xff1a; 4、路由器相关接口配置&a…

多线程问题

什么是线程 线程是cpu调度和执行的单位&#xff0c;一个程序的运行伴随着的是一个进程的执行&#xff0c;而一个进程是由一个或多个线程来完成的&#xff0c;通过cpu调度资源在很短时间切换主线程和子线程并行&#xff0c;交替执行来做到看似多个线程同时进行的状态&#xff0…

java入门-告别C进入java世界

目标 java体系 java开发环境 helloworld java语法 java体系 java开发环境 安装JDK JDK&#xff1a; Java Developement Kit 配置jdk 为什么需要配置 操作系统找不到此程序 操作系统PATH PATH C:\Users\49354>echo %PATH% C:\Program Files (x86)\VMware\VMware Works…

windows信息收集和提权

目录 手动收集 工具收集 windows本地内核提权 本地提权 根据windows去找需要的exp进行利用 提权后结合mimikatz使用 msf提权 简单提权 生成后门 上线 BypassUAC绕过UAC提权 msf带的bypassuac模块可以尝试提权 Bypassuac提权命令操作 提权成功 ​local_exploi…