GitLab的部署与使用

GitLab的部署与使用
Flaw关联文章:GitLab部署
1.为什么使用GitLab-开发运维一体化
2. 部署安装GitLab
使用git,还需要一个远程代码仓库。常见的github、gitee这种远程代码仓库,公司中一般不会使用,因为他们是使用外网的,不够安全。一般企业都会搭建一个仅内网使用的远程代码仓库,最常见就是 GitLab。
2.1 安装部署
GitLab一般由公司的运维人员安装部署,开发人员只需要申请账号和相应权限即可,在这里我们在hadoop104上自己安装GitLab社区版体验一下。
2.1.1 安装准备
1)需要开启ssh:(已开启可跳过)
1 | sudo systemctl status sshd |
2)防火墙开放http、https服务:(已关闭防火墙可跳过)
1 | sudo systemctl status firewalld |
2.1.2 rpm 包安装
1)上传安装包
下载地址:https://packages.gitlab.cn/#browse/search/
安装包较大,建议下载好手动上传服务器。这里上传到/opt/software
2)编写安装脚本
1 | cd ~/bin |
脚本内容如下:
1 | sudo yum install -y curl policycoreutils-python openssh-server perl |
3)修改脚本执行权限并执行
1 | chmod +x gitlab-install.sh |
4)修改external_url
编辑gitlab.rb
1 | [atguigu@hadoop104 ~]$ sudo vim /etc/gitlab/gitlab.rb |
在文件中找到external_url,修改为如下内容
1 | external_url 'http://hadoop104' |
保存退出
5)修改host
编辑gitlab.yml
1 | [atguigu@hadoop104 ~]$ sudo vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml.example |
找到gitlab.host修改为如下内容
1 | gitlab: |
保存退出
修改文件名称
1 | [atguigu@hadoop104 ~]$ sudo mv /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml.example /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml |
6)重装需要彻底卸载
1 卸载gitlab
1 | [atguigu@hadoop104 opt]$ sudo rpm -e gitlab-jh-16.6.1 |
2 删除gitlab文件
1 | [atguigu@hadoop104 opt]$ sudo rm -rf /etc/gitlab |
3 重装如果卡在sudo gitlab-ctl reconfigure配置命令上,可以使用另外一个窗口执行
1 | sudo systemctl restart gitlab-runsvdir |
2.1.3 执行初始化
执行过程大概需要3分钟:
1 | sudo gitlab-ctl reconfigure |
2.1.4 启停命令
1)启动命令
1 | sudo gitlab-ctl start |
2)停止命令
1 | sudo gitlab-ctl stop |
2.1.5 修改 root 密码
1)访问Web页面
默认使用80端口,直接浏览器输入安装服务器的hostname或ip:hadoop104
2)查看root密码
账号root,密码将随机生成并在 /etc/gitlab/initial_root_password 中保存24 小时:
1 | sudo cat /etc/gitlab/initial_root_password |
修改密码:

2.1.6 设置简体中文

回到首页,可以看到变成中文:

3. 使用GitLab完成团队管理
去到一家公司,应该是已经有了GitLab平台,运维人员拥有root管理员账号。而作为一名普通的开发人员,你的leader和同事都拥有各自的GitLab账号和不同权限。入职后,你只需要申请开通GitLab账号和对应权限,不需要你来操作。
3.1 创建用户
为了更符合公司实际,我们假设数据组的leader账号为tutou,你是atguigu。

创建一个leader的账号:

再申请一个atguigu账号

用户会收到重置密码的邮件,也可以由管理员设置:


3.2 创建群组
在gitlab里,可以创建出组、组下的子组。在小公司里可以看见gitlab里边会创建出后端,大数据等等一系列组。尽量不要使用中文创建组名, 可以在组信息中的备注编写中文描述以及中文组名, 组内人员名称也尽量用全拼命名。
对于人员权限以及角色的控制也比较简单,有如下五种:
Ø Owner:最高权限,谁去创建组,这个组就被谁拥有,它可以开除管理员,但管理员无法操作owner的角色。
Ø Maintainer:(管理员-只是具备sudo权限的用户)管理员一般是给小组的组长,或者是给产品线的总监设定。
Ø Developer:是干活的人,就是写代码的程序员,可以进行代码的上传以及代码的下载,不能下载其他的组内的代码,只能下载它们组的代码。
Ø Repoter:比如现在有需求,其他组的大牛到我们组过来指导工作,要审视我们的代码,人家就提出需要一个权限,我不能给它developer因为它会改你代码,其他组的人不能改我们组的代码,所以就给一个repoter权限,他只能看,只读权限。
Ø guest:不用看,匿名,直接去掉。一般出现在从ldap中把离职人员的信息删掉,再去gitlab查这个人的时候,它就是一个guest用户(匿名)需要再到gitlab把它删掉(不删也没事)。
下面,我们假设研发部群组是rdc,下属后端组、前端组、大数据组等子群组:

1)创建研发中心群组rdc

2)创建大数据组
在研发中心组下,再创建一个大数据组(当然,其他还会有后端组、前端组等):


当然,根据公司情况还可以进一步在数据组下面细分子组(比如:离线、实时、湖等),这里我们就不再细分。
将数据组的leader设为bigdata的负责人:

将atguigu添加为普通的开发人员:

现在我们就有一个顶级群组rdc,其下有一个子群组bigdata,组内有管理员tutou,开发人员atguigu。
4.使用IDEA兼容GitLab
1)安装 GitLab 插件
2) 配置 SSH 免密登录
1 | ssh-keygen -t rsa -C ergou@atguigu.com |

到用户目录下.ssh查看id_rsa.pub文件


添加到GitLab中:

3)获取 GitLab 个人令牌

创建后,可以查看和复制生成的token:

4)添加 GitLab 服务


5)修改默认分支的保护策略












