欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

配置GitLab

程序员文章站 2022-05-31 20:00:04
...

配置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。

临时关闭unicornsidekiq服务

资源不足时,如果是测试环境,可以将这两个服务临时关闭:

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