GItLab简介
GitLab是由GitLabInc.开发,使用MIT许可证的基于网络的Git仓库管理工具,且具有wiki和issue跟踪功能。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
版本环境
Linux版本:CentOS 7.6
GitLab版本:gitlab-ce-11.5.7-ce.0.el7.x86_64.rpm
常用说明
1. 目录说明:
/var/opt/gitlab/git-data/repositories:库默认存储目录
/opt/gitlab:应用代码和相应的依赖程序
/var/opt/gitlab:gitlab-ctl reconfigure命令编译后的应用数据和配置文件,不需要人为修改配置
/etc/gitlab: 配置文件目录
/var/log/gitlab:此目录下存放了gitlab各个组件产生的日志
/var/opt/gitlab/backups/:备份文件生成的目录
2. 基础命令说明:
gitlab-ctl status:查看gitlab组件状态
gitlab-ctl start:启动全部服务
gitlab-ctl restart:重启全部服务
gitlab-ctl stop:停止全部服务
gitlab-ctl reconfigure:使配置文件生效(一般修改完主配置文件/etc/gitlab/gitlab.rb,需要执行此命令)
gitlab-ctl show-config :验证配置文件
gitlab-ctl uninstall:删除gitlab(保留数据)
gitlab-ctl cleanse:删除所有数据,从新开始
gitlab-ctl tail 查看服务的日志
3. 组件说明:
nginx:静态Web服务器
gitlab-shell:用于处理Git命令和修改authorized keys列表,我们的gitlab是以Git做为最层的,你操作实际上最后就是调用gitlab-shell命令进行处理。
gitlab-workhorse:轻量级的反向代理服务器
logrotate:日志文件管理工具
postgresql:数据库
redis:缓存数据库
sidekiq:用于在后台执行队列任务(异步执行)
unicorn:GitLab Rails应用是托管在这个服务器上面的
安装
- 安装依赖
yum install -y curl policycoreutils-python openssh-server postfix wget lrzsz
- 安装gitlab
rpm -ivh gitlab-ce-11.5.7-ce.0.el7.x86_64.rpm
- 修改配置文件
vi /etc/gitlab/gitlab.rb
修改如下内容:
external_url 'http://本机ip'
unicorn['listen'] = '0.0.0.0'
unicorn['port'] = 8086
sidekiq['listen_address'] = '0.0.0.0'
sidekiq['listen_port'] = 8088
nginx['listen_port'] = 8085
prometheus['listen_address'] = 'localhost:8087'
#不想开启备份改为False
gitlab_rails['manage_backup_path'] = true
#备份目录
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
#备份文件权限
gitlab_rails['backup_archive_permissions'] = 0644
#这里是设置备份保留7天(7*3600*24=604800),秒为单位,如果想增大或减小,可以直接在该处配置,并通过gitlab-ctl restart 重启服务生效。
gitlab_rails['backup_keep_time'] = 7776000
- 初始化配置
说明:/etc/gitlab/gitlab.rb 中的配置是一个中心配置,再此的配置文件会发送到多个子配置文件
#初始化配置
gitlab-ctl reconfigure
#重启服务
gitlab-ctl restart
至此,gitlab安装完成
重置root密码
a、 切换目录:cd /opt/gitlab/bin
b、执行 :sudo gitlab-rails console production 命令开始初始化密码
c、在irb(main):001:0> 后面通过 u=User.where(id:1).first 来查找与切换账号(User.all 可以查看所有用户)
d、通过u.password='12345678’设置密码为12345678(这里的密码看自己喜欢):
e、通过u.password_confirmation=‘12345678’ 再次确认密码
f、通过 u.save!进行保存(切记切记 后面的 !)
g、如果看到上面截图中的true ,恭喜你已经成功了,执行 exit 退出当前设置流程即可。
h、回到gitlab ,可以通过 root/12345678 这一超级管理员账号登录了
数据备份恢复
- 数据备份:
vi /etc/gitlab/gitlab.rb
修改如下内容:
gitlab_rails['manage_backup_path'] = true
#备份目录
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
#备份文件权限
gitlab_rails['backup_archive_permissions'] = 0644
#这里是设置备份保留7天(7*3600*24=604800),秒为单位,如果想增大或减小,可以直接在该处配置,并通过gitlab-ctl restart 重启服务生效。
gitlab_rails['backup_keep_time'] = 7776000
#初始化配置
gitlab-ctl reconfigure
#重启服务
gitlab-ctl restart
- 数据恢复:
恢复前需要先停掉数据连接服务:
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
如果是台空主机,没有任何操作,理论上不停这两个服务也可以。停这两个服务是为了保证数据一致性。如果你没修改过默认备份目录的话,将老服务器/var/opt/gitlab/backups目录下的备份文件拷贝到新服务器上的/var/opt/gitlab/backups
#600权限是无权恢复的。 --- 这里改成了777
[root@yunwei-test backups]# pwd
/var/opt/gitlab/backups
[root@yunwei-test backups]# chmod 777 1530773117_2020_07_05_gitlab_backup.tar
[root@yunwei-test backups]# ll
total 17328900
-rwxrwxrwx 1 git git 17744793600 Jul 5 14:47 1530773117_2020_07_05_gitlab_backup.tar
执行下面的命令进行恢复:后面再输入两次yes就完成恢复了。
gitlab-rake gitlab:backup:restore BACKUP=1530773117_2020_07_05_gitlab_backup.tar
恢复完成后,启动刚刚的两个服务,或者重启所有服务,再打开浏览器进行访问,发现数据和之前的一致:
gitlab-ctl start unicorn
gitlab-ctl start sidekiq
或
gitlab-ctl restart
注意事项
- gitlab 会占用多个端口,注意修改合适端口,防止端口冲突
GitLab搭建(二)- 添加腾讯企业邮箱