极狐gitlib的安装和使用

  • 一、实验环境
  • 二、安装部署(不带邮箱)
  • 三、一些操作
    • 3.1 常用命令
    • 3.2 备份
      • 3.2.1 备份文件分为两步:
      • 3.2.2 自定义备份位置
    • 3.3 恢复
    • 3.4 一些问题
    • 3.5 包含的组件
  • 四、使用极狐gitlib
    • 4.1 初始登录说明
    • 4.2 新建用户
    • 4.3 新建一个群组
    • 4.3 新建一个项目
    • 4.4 在项目中邀请成员
    • 4.5 新建分支
    • 4.6 开启分支保护
    • 4.7 分支合并

一、实验环境

gitlib只需要单机即可以了,因为好恢复。
机器IP:192.168.199.202
机器配置:4C8G(最低配置)

二、安装部署(不带邮箱)

官方文档:链接: link

关闭防火墙(根据自己需求)

systemctl stop firewalld
setenforce 0
iptables -F

安装依赖

yum install -y curl policycoreutils-python openssh-server perl

配置极狐GitLab 软件源镜像

curl -fsSL https://packages.gitlab.cn/repository/raw/scripts/setup.sh | /bin/bash

替换下面的IP为自己的IP,注意是http。(这里先不弄https)
包比较大,会慢一些

EXTERNAL_URL="http://192.168.199.202" yum install -y gitlab-jh

安装自动已经配置了开机自启,顺便查看一下组件状态

[root@node2 ~]# gitlab-ctl status
run: alertmanager: (pid 19545) 57s; run: log: (pid 19131) 92s
run: gitaly: (pid 19351) 67s; run: log: (pid 17824) 197s
run: gitlab-exporter: (pid 19509) 59s; run: log: (pid 18819) 110s
run: gitlab-kas: (pid 19477) 61s; run: log: (pid 18168) 182s
run: gitlab-workhorse: (pid 19487) 60s; run: log: (pid 18649) 127s
run: logrotate: (pid 17653) 212s; run: log: (pid 17673) 211s
run: nginx: (pid 18687) 123s; run: log: (pid 18703) 122s
run: node-exporter: (pid 19501) 60s; run: log: (pid 18770) 116s
run: postgres-exporter: (pid 19555) 57s; run: log: (pid 19191) 86s
run: postgresql: (pid 17982) 189s; run: log: (pid 18058) 186s
run: prometheus: (pid 19524) 59s; run: log: (pid 19092) 96s
run: puma: (pid 18477) 142s; run: log: (pid 18502) 139s
run: redis: (pid 17719) 206s; run: log: (pid 17754) 203s
run: redis-exporter: (pid 19511) 59s; run: log: (pid 18873) 104s
run: sidekiq: (pid 18531) 136s; run: log: (pid 18567) 133s

三、一些操作

3.1 常用命令

# 启动所有 gitlab 组件
sudo gitlab-ctl start
# 停止所有 gitlab 组件
sudo gitlab-ctl stop
# 启所有 gitlab 组件
sudo gitlab-ctl restart
# 查看服务状态
sudo gitlab-ctl status
# 重新配置并启动服务
sudo gitlab-ctl reconfigure
# 修改默认的配置文件
sudo vim /etc/gitlab/gitlab.rb
# 检查gitlab
gitlab-rake gitlab:check SANITIZE=true --trace
# 查看日志
sudo gitlab-ctl tail

3.2 备份

3.2.1 备份文件分为两步:

1、配置文件直接手动备份

/etc/gitlab/gitlab.rb:主配置文件,包含外部URL、仓库目录、备份目录等
/etc/gitlab/gitlab-secrets.json:(执行gitlab-ctl reconfigure命令行后生成),包含各类密钥的加密信息
cp /etc/gitlab/gitlab.rb  /etc/gitlab/gitlab.rb_`date +%F`
cp /etc/gitlab/gitlab-secrets.json /etc/gitlab/gitlab-secrets.json_`date +%F`

2、数据文件,使用以下方式备份
手动执行备份

sudo gitlab-backup create
or
sudo /opt/gitlab/bin/gitlab-rake gitlab:backup:create

会有提示说需要手动备份配置文件,就是上一个步骤

如果定时备份,例如每天凌晨2点30分备份

30 2 * * *  /opt/gitlab/bin/gitlab-rake gitlab:backup:create

上面的备份结果如下:

3.2.2 自定义备份位置

备份默认位置 /var/opt/gitlab/backups
修改备份位置

vim /etc/gitlab/gitlab.rb
gitlab_rails['manage_backup_path'] = true
# 备份目录
gitlab_rails['backup_path'] = "/backup/gitlab"
# 备份包(tar格式压缩包)的权限
gitlab_rails['backup_archive_permissions'] = 0644
# 备份的保留时间,单位是秒
gitlab_rails['backup_keep_time'] = 604800

重载配置生效

mkdir -p /backup/gitlab
gitlab-ctl reconfigure

3.3 恢复

1、前提条件
准备好原配置文件 /etc/gitlab/gitlab.rb /etc/gitlab/gitlab-secrets.json以及数据文件

2、确保GitLab服务的启动可访问,并且版本和备份数据版本一致

命令行查看

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

OR

访问 http://192.168.199.202/help

3、拷贝备份文件至指定的backups目录下(默认为/var/opt/gitlab/backups),并确保权限为777
PS:我这里一台机器演示,所以用了上面设置的备份目录

cd /backup/gitlab/
chmod 777 1670833283_2022_12_12_15.6.2-jh_gitlab_backup.tar

4、 使用gitlab-ctl命令停止unicorn(或者puma)以及sidekiq服务

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

5、使用gitlab-backup restore进行数据恢复

gitlab-rake gitlab:backup:restore force=yes BACKUP=1670833283_2022_12_12_15.6.2-jh

会有pg报错,不过好像没什么影响

为了保险起见,可以参考一下别人的处理(这里放在重启之后)
6、 恢复gitlab-secrets.json文件与gitlab.rb 配置文件
7、重设、重启服务并检查

gitlab-ctl  reconfigure
gitlab-ctl  restart
gitlab-rake gitlab:check SANITIZE=true

8、修改上面第5步的错误
修改postgresql配置

vim /var/opt/gitlab/postgresql/data/postgresql.conf
#修改为
listen_addresses = '*'
vim /var/opt/gitlab/postgresql/data/pg_hba.conf
#最后添加两行
local   all         all                               trust
host    all         all                               127.0.0.1/32 trust

重启gitlab服务

gitlab-ctl restart

修改gitlab账号为超级用户

su - gitlab-psql
/opt/gitlab/embedded/bin/psql -h 127.0.0.1 gitlabhq_production
psql (9.2.8)
Type "help" for help.gitlabhq_production=# ALTER USER gitlab WITH SUPERUSER;
ALTER ROLE
gitlabhq_production=# \q

3.4 一些问题

Q1: 忘记密码,修改root密码

#使用黑屏终端修改root密码
gitlab-rails console -e production
user = User.where(username:"root").first
user.password = "12345687"
user.save! # 返回true,则root用户密码修改为 12345687

Q2: 修改gitlab nginx port

只修改listen port,不运行 reconfig,只运行 restart
vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
gitlab-ctl restart nginx

Q3: 卸载gitlab

gitlab-ctl stop
rpm -ql gitlab-ce
ps aux | grep gitlab | awk '{print $2}' | xargs -I {} kill -9 {}
rm -rf /opt/gitlab /etc/gitlab /var/log/gitlab /var/opt/gitlab

Q4: gitlab-ctl reconfigure 卡死

另开终端运行 nohup /opt/gitlab/embedded/bin/runsvdir-start &

Q5: git 克隆 源码ssh 方式成功,http方式失败

检查密钥,重设sshkey

3.5 包含的组件

1. repository:代码库,可以是硬盘或 NFS 文件系统
2. Nginx:Web 入口
3. 数据库:包含以下信息:- repository 中的数据(元数据,issue,合并请求 merge request 等)- 可以登录 Web 的用户(权限)
4. Redis:缓存,负责分发任务
5. sidekiq:后台任务,主要负责发送电子邮件。任务需要来自 Redis
6. Unicorn:Gitlab 自身的 Web 服务器,包含了 Gitlab 主进程,负责处理快速/一般任务,与 Redis 一起工作。工作内容包括:-  通过检查存储在 Redis 中的用户会话来检查权限-  为 Sidekiq 制作任务-  从仓库(warehouse)取东西或在那里移动东西
7. gitlab-shell:用于 SSH 交互,而不是 HTTP。gitlab-shell 通过 Redis 与 Sidekiq 进行通信,并直接或通过 TCP 间接访问 Unicorn
8. gitaly:后台服务,专门负责访问磁盘以高效处理 git 操作,并缓存耗时操作。所有的 git 操作都通过 Gitaly 处理
9. gitlab-workhorse:反向代理服务器,可以处理与 Rails 无关的请求(磁盘上的CSS、JS 文件等),处理Git Push/Pull 请求,处理到Rails的连接(修改由Rails发送的响应或发送给 Rails 的请求,管理 Rails 的长期 WebSocket 连接等)。
10. mail_room:处理邮件请求。回复 GitLab 发出的邮件时,GitLab 会调用此服务
Sidekiq. Unicorn 和 GitLab-shell 是GitLab中处理任务的 3 个程序。

四、使用极狐gitlib

参考:链接: link

4.1 初始登录说明

初始安装的用户为root
密码在 /etc/gitlab/initial_root_password
务必24小时之内登录并修改密码

[root@node2 ~]# grep "^Password" /etc/gitlab/initial_root_password
Password: pCC1wACGJ83RWngVaMx/EXptEc8QBtMpW/kjRkMyD6E=

登录,浏览器中输入:

http://192.168.199.202

去掉注册限制,不然谁都能注册
1、

2、

3、

4.2 新建用户

左上角主菜单 >> 选择管理员 >> 选择新建用户

开始新建用户

拉倒最后点击创建用户

我这里没有设置邮箱,所以手动设置密码。
点击保存后编辑用户信息即可设定密码。

密码 (最短为 8 个字符

拉到最后保存即可。

首次登录会要求更改密码,可以和旧密码一样

4.3 新建一个群组

开始新建

拉到最后点击创建群组

4.3 新建一个项目

左上角主菜单 >> 选择管理员 >> 选择新建项目
PS:其实路径很多
1、

2、

3、

4.4 在项目中邀请成员

加入到群组中也是一样的
菜单 >> 项目 >> 查看所有项目


1、

2、

3、

角色的区别

匿名用户   Guest       访客(只能创建问题和留言评论)
报告人     Reporter    可以理解为测试员、产品经理等,一般负责提交问题等
开发人员   Developer   负责项目开发
管理者     Master      一般是组长,负责对Master分支进行维护
所有者     Owner       一般是项目经理【拥有所有权限】

4.5 新建分支

多个分支可以更好的协同作业,提高效率
参考 4.4 先进到项目中
1、

2、

git地址

4.6 开启分支保护

栗子:

为test分支配置分支保护
这样拥有Developer权限的开发人员就不能修改test分支的代码
只能在dev分支做开发。
拥有Maintainers权限的项目经理定期将dev的代码合并到test分支

4.7 分支合并

如果按上一步设置了分支保护
Maintainers可以直接合并分支到test
Developer可以发起分支合并请求然后由Maintainers批准
合并的前提是dev新增了代码,且无代码冲突

先去掉删除源分支,不然合并之后分支没了

拉到最后,点击保存

开始模拟

先在dev上随便写一些代码用作模拟
1、

2、

3、


3、

发起合并请求
点击左侧“合并请求”——“新建”
1、

2、

3、

4、

知识储备+1

极狐gitlib的安装和使用相关推荐

  1. 在 Kubernetes 上安装和运行极狐GitLab实例

    目录 写在前面 极狐GitLab 在 Kubernetes 上的安装 前提条件 Chart 准备 values.yaml 定制 Helm 安装 在前面的文章中分别演示了如何用安装包. docker 在 ...

  2. 极狐gitlab在ubuntu20.04上的安装(一)初步安装

    gitlab的安装有一个很重要的先决条件,你的服务器.虚拟机或者主机的内存 必须大于4G!!! 必须大于4G!!! 必须大于4G!!! 重要的事情说三遍,但是4G也只能刚好安装好,使用起来非常卡顿,建 ...

  3. 使用 KubeSphere 和极狐GitLab 打造云原生持续交付系统

    KubeSphere 简介 Kubernetes 是一个非常复杂的容器编排平台,学习成本非常高,KubeSphere 所做的事情就是高度产品化和抽象了底层 Kubernetes,是一个面向云原生的操作 ...

  4. 实战:从 0 到 1 极狐GitLab CI/CD 前端持续部署

    文章目录 写在前面 服务器配置 环境安装 安装 Docker 安装 极狐GitLab 测试 极狐GitLab 极狐GitLab Runner 前端项目 CI/CD 流程的设计 正式开始编写 .gitl ...

  5. 极狐GitLab Helm Registry 的使用

    目录 Helm Helm 的安装 Helm Chart 的创建 Helm 的使用 极狐GitLab Helm Registry 使用 上传 Helm Chart 到极狐GitLab Helm Regi ...

  6. 极狐gitlab版本升级 #JIHULAB101

    当前版本14.3.4,分享下Omnibus和docker两种部署方式下如何升级到最新版本 升级路线: 极狐14.3.4 -> 极狐14.9.5 -> 极狐14.10.5 -> 极狐1 ...

  7. 极狐GitLab 和 ArgoCD 的集成实践

    极狐GitLab ArgoCD 和 GitOps 概述 ArgoCD 是一款开源且主要针对 Kubernetes 来做 GitOps 的持续交付工具.现在是 CNCF 的孵化项目.其整体架构图如下: ...

  8. 从 SVN 到极狐GitLab的迁移指南

    目录 前提条件 SVN 的安装和配置使用 SVN 的安装 SVN 配置使用 SVN 协议配置使用 HTTP/HTTPS 协议配置使用 SVN 到极狐GitLab的迁移 使用 svn2git 来迁移 使 ...

  9. 极狐GitLab 15.3 | issues 中建任务、许可证合规分析,超 30 项更新全面来袭!

    沿袭我们月度发布的传统,今天带来了极狐GitLab 15.3 版本,新功能包括议题中的任务.免费的 GitOps 功能.SAML 群组链接的 API 维护.高级密码复杂度要求等. 这些只是该版本中 6 ...

  10. 极狐阿尔法s 鸿蒙系统,满身黑科技 极狐阿尔法S HI版量产验证车下线

    原标题:满身"黑科技" 极狐阿尔法S HI版量产验证车下线 5月26日,网通社从官方获悉,ARCFOX极狐与华为合作打造的阿尔法S HI版首台量产验证车,在北汽蓝谷麦格纳镇江工厂正 ...

最新文章

  1. BahdanauAttention与LuongAttention注意力机制简介
  2. JQuery仿最新淘宝网首页带箭头幻灯片,JQuery轮播图
  3. Part1. 泛函分析讲义I-度量空间概述
  4. 玹疯:这些年我走过的弯路
  5. 如何在PHP开启gzip页面压缩实例
  6. 程序员的自我修养 pdf_软件特攻队|C/C++程序员的自我修养(5)
  7. WEB应用安全解决方案测试验证
  8. 提取已有的内核配置文件
  9. Spring Boot系列(一)——初识Spring Boot
  10. FORM开发实现动态LOV
  11. Unity3D for VR 学习(2): 暴风魔镜框架探索
  12. 【分享一些自己收集的API接口---欢迎点赞收藏】
  13. 为什么选择WordPress作为企业CMS?
  14. java制作小鱼吃大鱼_大鱼吃小鱼游戏(Java编写)
  15. html加载完成 产生动作,页面加载功能设计总结
  16. 计算机视觉——全景图像拼接
  17. 倾斜摄影技术下打造的三维景区 [转]
  18. 如何加速播放SWF格式文件——使用Enounce MySpeed轻松实现
  19. mysql创建学生答题系统_jsp+ssm+mysql实现的学生在线考试系统
  20. php 连接已重置,[百思不得其解] Nginx 连接已重置 ERR_CONNECTION_RESET

热门文章

  1. 【SpringBoot】Bean 注入失败问题汇总
  2. 网页超链接:主页与子页的具体链接
  3. Rockchip RK3588 kernel dts解析之系统休眠配置rockchip_suspend
  4. 华为双系统手机可以刷成单系统_华为手机双系统,1部手机能当2部用,打开3秒就能切换,真厉害...
  5. jquery 漂浮广告
  6. Mac命令行 显示隐藏文件夹 不显示隐藏文件夹
  7. MavLink 库 c++环境搭建及解ADS-B消息教程
  8. 小波神经网络的基本原理,小波神经网络算法原理
  9. 计算机行业的薪资真的有那么高吗?讲真,有的一毕业就失业,有的一毕业就拿 20k+
  10. React 备忘录 v16