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
# 启动所有 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
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
上面的备份结果如下:
备份默认位置 /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
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
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
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 个程序。
参考:链接: link
初始安装的用户为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、
左上角主菜单 >> 选择管理员 >> 选择新建用户
开始新建用户
拉倒最后点击创建用户
我这里没有设置邮箱,所以手动设置密码。
点击保存后编辑用户信息即可设定密码。
密码 (最短为 8 个字符
)
拉到最后保存即可。
首次登录会要求更改密码,可以和旧密码一样
开始新建
拉到最后点击创建群组
左上角主菜单 >> 选择管理员 >> 选择新建项目
PS:其实路径很多
1、
2、
3、
加入到群组中也是一样的
菜单 >> 项目 >> 查看所有项目
1、
2、
3、
角色的区别
匿名用户 Guest 访客(只能创建问题和留言评论)
报告人 Reporter 可以理解为测试员、产品经理等,一般负责提交问题等
开发人员 Developer 负责项目开发
管理者 Master 一般是组长,负责对Master分支进行维护
所有者 Owner 一般是项目经理【拥有所有权限】
多个分支可以更好的协同作业,提高效率
参考 4.4 先进到项目中
1、
2、
git地址
栗子:
为test分支配置分支保护
这样拥有Developer权限的开发人员就不能修改test分支的代码
只能在dev分支做开发。
拥有Maintainers权限的项目经理定期将dev的代码合并到test分支
如果按上一步设置了分支保护
Maintainers可以直接合并分支到test
Developer可以发起分支合并请求然后由Maintainers批准
合并的前提是dev新增了代码,且无代码冲突
先去掉删除源分支,不然合并之后分支没了
拉到最后,点击保存
开始模拟
先在dev上随便写一些代码用作模拟
1、
2、
3、
3、
发起合并请求
点击左侧“合并请求”——“新建”
1、
2、
3、
4、
知识储备+1
上一篇:汇编语言常用DOS功能调用示例