系统:Centos7.6
安装方式:omnibus安装包,社区版
因为直接使用官网脚本安装特别慢,故使用清华开源镜像进行安装
1 安装
配置yum源
vim /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=gitlab-ce
baseurl=[http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7](http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7)
Repo_gpgcheck=0
Enabled=1
Gpgkey=[https://packages.gitlab.com/gpg.key](https://packages.gitlab.com/gpg.key)
更新缓存
yum makecache
安装
yum install -y gitlab-ce --nogpgcheck #--nogpgcheck取消校验
常用命令
gitlab-ctl start # 启动所有 gitlab 组件;
gitlab-ctl stop # 停止所有 gitlab 组件;
gitlab-ctl restart # 重启所有 gitlab 组件;
gitlab-ctl status # 查看服务状态;
gitlab-ctl reconfigure # 启动服务;
vim /etc/gitlab/gitlab.rb # 修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab;
gitlab-ctl tail # 查看日志;
安装目录
/etc/opt
2 启动登录
修改登录地址,可以修改url登陆地址
vim /etc/gitlab/gitlab.rb
重新配置服务大概5min左右
gitlab-ctl reconfigure
登录 输入你的url登陆即可
http://192.168.1.206/
登录默认用户名/密码: root/5iveL!fe
3 gitlab组件以及相关配置
gitlab组件
图片.png- 首先访问nginx(接待人员)
- 访问请求到redis种,执行redis中任务的是unicorn(3种)
- unicorn(1 权限验证,比如说ldap 2通过web界面操作源码文件 3 unicorn向redis发布一个sidekiq的任务时,sidekiq主要任务是发送邮件)
- gitlab-shell ,ssh协议处理请求
- gitaly代理所有git相关操作
安装配置文件:/etc/gitlab/gitlab.rb,以下均为这个配置文件的修改:
修改默认仓库地址 git data
默认仓库地址:/var/opt/gitlab/git-data/repositories
430 # git_data_dirs({
431 # "default" => {
432 # "path" => "/mnt/nfs-01/git-data"
433 # }
434 # })
调整时区
58 gitlab_rails['time_zone'] = 'Beijing'
配置邮箱
图片.png注意云主机的25端口是封闭的,可以使用465端口,将smtp_tls设置为true
测试邮件是否配置成功:
使用gitlab-rails console 进入控制台,
查看目前的邮箱配置
图片.png
发送邮件测试格式:Notify.test_email('收件人邮箱', '邮件标题', '邮件正文').deliver_now
图片.png
邮箱配置能成功发送邮件后, 新建用户, 用户收到的邮箱打开gitlab服务器域名是 example.gitlab.com 需做修改
更改邮件中提示的gitlab登陆地址文件:
/gitlab/gitlab-rails/etc/gitlab.yml
host: 192.168.4.24
port: 80
https: false
收到的邮箱格式,通过此连接修改密码后可以使用用户名或者邮箱登录。
图片.png
配置生效命令:gitlab-ctl reconfigure
防攻击配置
图片.png默认开启,当由用户多次访问并超时时,会禁止访问,释放无效连接进程,节省资源
4 gitlab小技巧
merge request工作流使用
1 不建议直接在主干开发
2 创建功能分支,创建与功能相关的开发工作,好的提交策略:小步提交,原子功能提交,提交注释的规范
3 完成功能开发之后,创建merge request到主干,将新功能合并到主干
4 code review(CI,代码静态扫描结果,预发布结果是否正常)
5 merge request达到标准到将代码合并到主干
好处:
1 代码交付时合并到主干之前保证代码质量,不会破坏对外发布的代码,保证产品一直时可对外发布的状态
2 代码审核期间错误不会影响其它开发人员,每个开发人员只对自己的开发内容负责
3 降低开发代码冲突所造成的问题,在合并之前就已经解决掉了
4 对代码审查制度也是一种手段
gitlab实景操作流程
-
创建issue
图片.png
之后会在右上角看到你的issue和to do list
图片.png - 根据发布的任务创建分支
- 将分支拉去到本地并更新代码
git clone url
git pull //更新最新创建的分支
git checkout 1-add-a-new-file //切换到任务分支上
touch helloword.py //创建任务
git add helloword.py //添加到缓冲区
git commit -m addfile //提交到本地仓库
git push //提交到远程分支
现在在gitlab的web界面下就可以看到你提交的代码了
图片.png
-
创建create merge request,点击右上角create merge reques
图片.png
图片.png
点击submit merge request
图片.png
点击merge
图片.png
查看项目主干已经有这个分支了
图片.png
查看issue已经关闭,to do list中两个任务已经完成(issue和merge)
图片.png
5 gitlab权限
项目创建者默认是owner权限
guest:可以创建任务,浏览项目。可以在web中查看
report:可以拉去代码,被分配任务。可以将代码拉取到本地
developer:不可以添加项目成员,不可以修改被保护分支。开发人员权限,不可以提交保护分支,推荐使用merge request
master:不可以调整项目可以等级,不可以删除
参考:
网友评论