配置GitLab
文章目录
配置GitLab
帮助文档
GitLab自带的帮助文档:
https://<your_gitlab_domain>/help
比如:
https://gitlab.xdevops.cn/help
GitLab参考文档:
常规配置
创建Group,在Group下创建Project,在Group下添加User
创建Project
添加User
添加User:
- 限制Project limit(默认为100000)
- 取消勾选Can create group(如果有必要)
- 保持Access level为Regular (对非管理员用户)
添加完该User后,用管理员账号给该User设置密码。
该User第一次登陆时,还会被要求重新设置密码。
在Group中添加Member
Group owner/maintainer可以在Group中添加member
在Project中添加Member
Project owner/maintainer可以在Group中添加member
用户权限
https://docs.gitlab.com/ee/user/permissions.html
简单地说:
- Guest:只读,不能clone代码
- Reporter:只读,能clone和pull代码,不能push代码
- Developer:能clone和pull代码,能push代码到unprotected branch;不能push代码到protected branch,能发起merge request
- Maintainer:能push代码到protected branch,能合并merge request,有管理权限,但是不能删除项目
- Owner:管理员权限
一般地将Guest权限分配给一些公共文档的读者,将Reporter权限分配给CI工具专有账号(比如Jenkins),将Developer权限分配给普通开发人员,将Maintainer权限分配给资深开发人员、主程序员、开发经理和架构师。
设置Protected branch
https://docs.gitlab.com/ee/user/project/protected_branches.html
https://docs.gitlab.com/ee/user/project/merge_requests/
GitLab默认将master分支设置为protected branch。
如果采用多分支策略,需要将多个公共分支(比如develop分支、release-xxx分支和feature-xxx分支等)都设置为protected branch。
打开project,选择Settings / Repository,选择Protected Branch,点击Expand
选择某个公共分支(支持wildcard)
选择Allowed to merge (谁可以发起merge request)
选择Allowed to push (谁可以直接push代码进该分支)
严格模式:
如果遵循“任何人对branch的改动都要发起merge request来做code review“的原则,则选择Allowed to merge为Developers + Maintainers,选择Allowed to push为No one
宽松模式:
如果遵循"普通开发人员对branch的改动都要发起merge request来做code review,资深开发人员可以直接提交"的原则,则选择Allowed to merge为Developers + Maintainers,选择Allowed to push为Maintainers
GitLab Flow分支策略
https://about.gitlab.com/2014/09/29/gitlab-flow/
Git Flow的主要缺点:
- 分支多,合并复杂
- 实际默认分支为develop分支
- hotfix分支模式不适应现在CI/CD的要求
GitHub Flow的主要缺点:
- 理想化,比如假设master分支随时处于可发布到生产环境的状态
GitLab Flow的特点:
- 在master分支上创建feature分支(每个feature一个分支)来开发,开发完成后合并回master分支
- 从master分支上创建release分支来准备一次发布
- 准备发布期间的bug fix,从master分支上修复后,再cherry-pick到相应的release分支
注意release分支不是一条分支,而是每次一次release一条分支,格式类似:release-1.1.0
设置默认分支
GitLab默认分支为master分支,如果想修改默认分支(比如采用GitFlow分支策略时实际默认分支是develop分支),可以打开project,选择Settings / Repository,选择Default Branch,点击Expand,选择一个新的默认分支。
修改时区为中国时间
https://docs.gitlab.com/ee/workflow/timezone.html
http://unicode.org/repos/cldr/trunk/common/supplemental/windowsZones.xml
修改/etc/gitlab/gitlab.rb
,取消下面一行的注释,然后将时区改为Asia/Shanghai
。
Before:
# gitlab_rails['time_zone'] = 'UTC'
After:
gitlab_rails['time_zone'] = 'Asia/Shanghai'
重新配置并重启GitLab:
gitlab-ctl reconfigure
gitlab-clt restart
开启Rack Attack功能
https://docs.gitlab.com/ee/security/rack_attack.html
GitLab支持Rack Attack功能,即防止同一个IP地址发起多次失败的授权请求,比如暴力**密码。
对需要暴露在公网上的GitLab需要开启该功能。
修改/etc/gitlab/gitlab.rb
文件,加入以内内容:
gitlab_rails['rack_attack_git_basic_auth'] = {
'enabled' => true,
'ip_whitelist' => ["127.0.0.1"],
'maxretry' => 10, # Limit the number of Git HTTP authentication attempts per IP
'findtime' => 60, # Reset the auth attempt counter per IP after 60 seconds
'bantime' => 3600 # Ban an IP for one hour (3600s) after too many auth attempts
}
重新配置GitLab:
gitlab-ctl reconfigure
关闭用户注册功能
GitLab默认允许用户注册,但是一般公司内部的GitLab都不允许自行注册。
目前只能通过GitLab管理员界面来关闭用户注册功能:
Admin Area -> Settings -> General -> Sign-up restrictions
Expand “Sign-up restrictions”, and uncheck “Sign-up enabled”
无法直接从gitlab.rb中直接关闭用户注册功能是GitLab的一个缺陷,希望以后GitLab能解决这个问题。
参考文档:
502错误
增加资源
GitLab推荐CPU 2 core和8 GB RAM。参见:
如果是使用虚拟机,试着将虚拟机改为2核以上。
增大ulimit
设置:
# Increase ulimit
ulimit -u ulimited
ulimit -n 64000
# Restart Gitlab
gitlab-ctl restart
重启浏览器,再重新打开GitLab。
临时关闭unicorn
和sidekiq
服务
资源不足时,如果是测试环境,可以将这两个服务临时关闭:
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
查看日志
查看GitLab日志:
gitlab-ctl tail
GitLab日志文件在/var/log/gitlab
目录。
Git repositories存储
GitLab默认将Git repositories保存在/var/opt/gitlab/git-data
目录。
下一篇: 【运维笔记】gitlab