本教程主要讲解了GitLab在项目的环境搭建和基本的使用,可以帮助大家在企业中能够自主搭建GitLab服务,并且可以GitLab中的组、权限、项目自主操作
1.GitLab简介
2.GitLab环境搭建
3.GitLab基本使用(组、权限、用户、项目)
GitLab是整个DevOps生命周期的第一个应用程序。其使用与GitHub类似,并且提供了许多DevOps相关的功能。GitLab提供无与伦比的可见性,更高的效率和全面的治理。这使得软件生命周期加快了200%,从根本上提高了业务速度。
官方网站:The One DevOps Platform | GitLab
此处以centos7为例。
1)安装并配置依赖项,同时打开HTTP访问和SSH访问
sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld
2)安装GitLab软件包
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce
3)初始化GitLab配置
sudo gitlab-ctl reconfigure
其他命令
# 启动 gitlab 服务
gitlab-ctl start
# 停止 gitlab 服务
gitlab-ctl stop
默认安装位置
4)访问登录
首次访问时,会重定向到重置密码页面,设置初始化登录密码。默认用户名为root。当重置成功,跳转到登录页面,输入用户名/密码登录即可
登录成功后,进入主页
默认语言使用的英文,如果想修改为中文的话。操作步骤:右上角头像 -> Settings -> Preferences -> Language -> 简体中文 -> save changes。 然后刷新当前页面即可。
在GitLab组相当于团队,在项目开发过程中,每个组有不同的组员和对应的不同的子项目,对项目组用户开放项目的访问。
在GitLab首页选择Create a Group,进入创建页面,输入群组名称,群组URL,群组描述,同时还需选择可见性级别,其相当于设置组权限。
在可见性级别中包含三种:
私有:群组及其项目只能由成员查看
内部:任何登录的用户都可以查看该群组和任何内部项目
公开:不进行身份验证,可以随意查看。
当输入完信息,点击创建群组即可完成组的创建。
4.2.1)创建用户
组有了之后,还需要向组内添加项目组成员。
当点击 新用户 后,会进入到添加用户页面,需要输入Name、Username、和Email。最后点击create user即可。
接着以管理员身份,重新进入到成员列表页面,此时已经可以看到新增了一个 member1 用户。接着点击编辑,设置该用户的登录密码。
4.2.2)用户进组,及用户权限指定
现在有了组和用户后,可以将指定用户添加到组中。
当进入到组的详情页面中之后,即可将指定用户添加到组中。首先需要先确定当前被操作的用户。接着需要指定当前用户的身份权限。
身份对应权限,总共有五个选项,分别为:
Guest:可以创建issue、发表评论,不能读写版本库
Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限
Developer:以克隆代码、开发、提交、push,RD可以赋予这个权限
Maintainer:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予这个权限
Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组leader可以赋予这个权限
可以根据实际人员情况,进行人员角色权限分配。此处选择 Developer
GitLab核心作用是作为代码仓库,因为它可以像GitHub一样进行代码托管。首先需要创建好项目,然后把项目指派该开发组。
当进入到新建项目页面,GitLab提供了三种创建方式:空白项目、从模板创建、导入项目。此处使用 空白项目 。对于权限仍然是三个,与组权限相同。
当创建成功,即可进入到项目页面。
并且此时,进入到项目组详情页面,可以看到该项目组已经关联了一个项目
各位小伙伴,在企业开发的过程中,代码的版本控制工具肯定会使用的,而GitLab是目前最流行的版本控制服务,通过我们以上的学习,我们要重点掌握关于GitLab的基本使用,如:项目组的创建、把成员添加到对应的开发组内、以组创建项目并与成员进行共享等等操作。