1. 概述
1. 私有代码仓库
2. 精细化权限配置,让系统更安全
3. 控制用户/用户组是否可以提交到主分支 (PR Push Request)
4. 它使用Ruby语言写成。后来,一些部分用Go语言重写
2. Gitlab vs Github/Gitee
Gitlab | Github/Gitee | |
---|---|---|
共同点 | 存放代码,git访问 | 存放代码,git访问 |
不同点 | 精确化控制权限 全面安全措施 定时备份 升级 迁移 | 使用权限,用户管理比较弱,无法做到精细化权限 |
3. Gitlab快速上手指南
安装要求:GitLab architecture overview | GitLab
环境准备:
主机 | ip |
---|---|
gitlab | 10.0.0.60 |
3.1 安装Gitlab
##安装gitlab
yum localinstall -y gitlab-ce-15.9.3-ce.0.el7.x86_64.rpm
##修改配置文件
vim /etc/gitlab/gitlab.rb
external_url 'http://gitlab.oldboylinux.cn'
gitlab_rails['smtp_enable'] = false
gitlab_rails['registry_enabled'] = false
registry['enable'] = false
prometheus['enable'] = false
alertmanager['enable'] = false
node_exporter['enable'] = false
redis_exporter['enable'] = false
postgres_exporter['enable'] = false
gitlab_exporter['enable'] = false
prometheus_monitoring['enable'] = false
##检查
egrep -v '^$|#' /etc/gitlab/gitlab.rb
##初始化
gitlab-ctl reconfigure
## 查看状态
gitlab-ctl status
##检查端口和进程
ps -ef |grep gitlab
ss -lntup |grep gitlab
3.1 登录与查看
3.2 汉化
进入账号里面的:prefenences(属性)
选择Localization 中的 Language,选择中文
3.3 设置密码
记得修改密码,初始化的密码会在24小时候删除哦!
3.4 目录结构
ll /var/opt/gitlab/
##配置文件目录
/var/opt/gitlab/
##日志目录
/var/log/gitlab/
3.5 删除
1. 删除rpm
2. /var/opt/gitlab /opt/gitlab/ 2个目录删除
3. 备份内核参数配置 /opt/gitlab/embedded/etc/*-gitlab-*.conf
4. 安装完成,覆盖回去上面几个conf
3.6 重置密码
##重置密码
gitlab-rake "gitlab:password:reset"
4. Gitlab用户与组
4.1 应用案例
案例创建用户组:dev
1. dev开发组
2. 添加用户xzb
3. 创建1个项目live_app项目
4. 项目与dev组关联
dev开发组
添加用户
关联用户与用户组
进入群组中,选择邀请成员.权限注意要设置为owner权限
创建项目
5. Gitlab 备份与恢复
5.1 配置文件
##配置文件 的backup部分
backup_
gitlab_rails['manage_backup_path'] = true ##是否可以指定备份目录
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" ###备份目录
gitlab_rails['backup_archive_permissions'] = 0644 ## 备份的压缩包权限
gitlab_rails['backup_keep_time'] = 604800 ##备份保留多久 7天
##配置生效
gitlab-ctl reconfigure
gitlab-ctl restart
##查看
ll -d /var/opt/gitlab/backups/
5.2 手动备份
#GitLab 版本>=12.2
gitlab-backup create
##GitLab 版本<=12.1
gitlab-rake gitlab:backup:create
5.3 自动备份
#每天备份1次
## 1.备份数据
gitlab-backup create
## 2.备份gitlab配置和密码文件
tar zcf /backup/gitlab/gitlab-conf-$(date +%F).tar.gz /etc/gitlab/
## 3.传输到备份服务器
## 4. 写入到定时任务
00 03 * * * sh /server/scripts/backup-gitlab.sh &>/dev/null
6. 恢复
##停止写入类服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
##gitlab-rake恢复 (不需要加tar)
##新版本GitLab 版本>=12.2
gitlab-rake gitlab:backup:restore BACKUP=备份文件
gitlab-backup restore BACKUP=11493107454_2018_04_25_10.6.4-ce
##旧版本GitLab 版本<=12.1:
gitlab-rake gitlab:backup:restore BACKUP=备份文件
gitlab-rake gitlab:backup:restore BACKUP=1656036972_2022_06_24_12.0.9
##重启 gitlab
gitlab-ctl restart
7. 迁移与升级
需要遵循以下升级步骤以确保主版本升级成功:
1. 升级至之前主要版本的最新次要版本
2. 升级到目标主要版本的第一个次要版本
3. 继续升级到较新的版本
8. 邮件
8.1 配置邮箱(发件人)
1. 注册的时候 Gitlab 服务器,给用户发送邮件,激活 或者找回密码
2. 用提交合并请求的时候,负责人可以收到邮件通知
##配置文件
egrep -v '^$|#' /etc/gitlab/gitlab.rb
external_url 'http://gitlab.oldboylinux.cn'
...
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "" ##发件人信息
gitlab_rails['smtp_password'] = "???" ##授权码
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'xing775288271@163.com'
gitlab_rails['gitlab_email_display_name'] = 'gitlab'
...
##重启
gitlab-ctl reconfigure
gitlab-ctl restart