11、Git之自建项目托管平台(GitLab极狐)

11.1、简介

Github 是国外的项目托管平台,由于网络问题,在国内访问和使用不是很方便。

Gitee 是国内的项目托管平台,虽然在访问和使用上挺方便的,但依然让人担忧项目代码可能会被泄露。

因此,从企业或机构的角度出发,是倾向于在内部自建一个项目托管平台,将绝对管理权控制在自己手中的。

GitLab 作为一个用于项目代码仓库管理的开源项目,则能很好地满足企业或机构在内部自建项目托管平台的需求。

11.2、安装

本节演示如何使用 rpm 安装包,在 CentOS 7 中离线安装 GitLab 。

11.2.1、下载安装包

gitlab 官网下载地址:https://packages.gitlab.com/gitlab/gitlab-ce

清华大学开源软件镜像站下载地址(推荐):https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

image

如上图所示,本文选择使用 gitlab-ce-16.10.6-ce.0.el7.x86_64.rpm 版本的安装包。

提示:EL7 是 Red Hat 7.x,CentOS 7.x 和 CloudLinux 7.x 的下载。

11.2.2、服务器准备

本文将 GitLab 安装在 CentOS 7 虚拟机上,虚拟机配置为 2 核 CPU 、4G 内存、16G 磁盘。

关于 CentOS 7 虚拟机的安装方法,请参考安装CentOS7虚拟机这篇文章。

注意:16G 磁盘是最低配置要求;我使用过 8G 磁盘的虚拟机,安装完 GitLab 后,再新建一个普通用户账号,就用完了 8G 磁盘的空间,甚至都还没有创建任何项目仓库。 关于如何扩容 CentOS 7 虚拟机的磁盘,请参考VirtualBox扩容CentOS-7虚拟机磁盘这篇文章。

11.2.3、上传安装包到服务器

image

如上图所示,使用 mobaxterm 之类的工具,将 rpm 安装包上传到 CentOS 服务器。

11.2.4、运行安装包

image

rpm -ivh 安装包名称

错误:依赖检测失败:
policycoreutils-python 被 gitlab-ce-16.10.6-ce.0.el7.x86_64 需要
image
注意:如果运行 GitLab 安装包时存在上述错误,则需要先安装 policycoreutils-python 依赖

11.2.5、修改external_url配置

image

如上图所示,external_url 配置在 /etc/gitlab/gitlab.rb 文件中。

vi /etc/gitlab/gitlab.rb

image

如上图所示,external_url 配置默认值为 http://gitlab.example.com

image

如上图所示,将 external_url 配置修改为 'http://192.168.56.120:10005

其中,192.168.56.120 是 GitLab 所在的服务器的 IP ;10005 是自定义的端口,否则 GitLab 会占用 80 端口。

11.2.6、重新加载配置文件

image

gitlab-ctl reconfigure

注意:重新加载配置文件的过程比较耗时,耐心等待即可,出现 gitlab Reconfigured! 即操作成功。
image

11.2.7、查看端口占用情况

image

上图为 CentOS 自身所使用的端口。

image

上图为重新加载 GitLab 配置文件后,端口的变化。

新加载 Gitlab 配置文件,会自动启动或重启 Gitlab ;所以不用再重复执行启动或重启命令。

11.2.8、常用命令速查表

命令 作用
gitlab-ctl start 启动 GitLab
gitlab-ctl restart 重启 GitLab
gitlab-ctl stop 停止 GitLab
gitlab-ctl reconfigure 新加载 GitLab 配置文件
gitlab-ctl status 查看 GitLab 状态
gitlab-rake gitlab:check SANITIZE=true 检查 GitLab
gitlab-ctl tail 查看 GitLab 日志

11.2.9、查看管理员初始化密码

image

如上图所示,在第一次成功重新加载配置文件后,会为 GitLab 的 root 管理员账号随机生成一个初始化密码;该密码会在 24 小时后自动删除。

cat /etc/gitlab/initial_root_password

11.3、Gitlab的基本使用

11.3.1、访问GitLab登录页

image

如上图所示,使用在 11.2.5 节配置的 external_url (http://192.168.56.120:10005)即可访问 GitLab 登录页。

注意:如果访问不了登录页,可能是服务器的防火墙问题,关掉防火墙即可;
image
systemctl stop firewalld

11.3.2、登录root管理员账号

image

如上图所示,使用生成的初始化密码,登录root管理员账号。

image

如上图所示,这便是 GitLab 的主页。

11.3.3、修改界面语言为中文

image

如上图所示,点击“Preference”。

image

如上图所示,将 Language 选择为简体中文,然后保存修改。

11.3.4、修改root管理员密码

image

如上图所示,点击“编辑个人资料”。

image

如上图所示,在“密码”界面中,即可修改密码。

image

如上图所示,修改密码后,需要重新登录。

11.3.5、停用注册功能

image

如上图所示,GitLab 默认开启自由注册账号功能,但是 GitLab 一般用于企业内部,因此一般都会停用注册功能,账号应由 root 管理员创建。

image

image

如上图所示,取消“已启用注册功能”,然后保存更改即可。

image

如上图所示,停用注册功能后,登陆页面的“立即注册”入口消失了。

image

如上图所示,如果想恢复启用注册功能,在“管理中心”->“设置”->“通用”中,可以找到“注册限制”的配置项恢复配置。

11.3.6、创建新账号

image

如上图所示,在“管理中心”->“概览”->“用户”中,可以找到创建新用户的按钮。

image

如上图所示,设置新用户的名称、用户名和电子邮件。

image

如上图所示,设置新用户的权限为“管理员”。

image

如上图所示,新建用户成功后,会自动跳转到该用户的资料页,可以点击“编辑”按钮,为该用户重置密码。

image

如上图所示,为该用户设置密码后,点击“保存更改”即可。

11.3.7、创建远程仓库

image

如上图所示,点击“创建项目”。

image

如上图所示,选择“创建空白项目”。

image

如上图所示,设置仓库名称、仓库归属用户、仓库可见级别,然后点击“新建项目”按钮,即可创建一个远程库仓库。

image

如上图所示,仓库新建成功,可以获取到这个仓库的 HTTP 和 SSH 地址。

11.3.8、配置SSH密钥

image

如上图所示,点击“编辑个人资料”->“SSH密钥”,进入配置SSH密钥的界面;然后点击“添加新密钥”按钮。

image

如上图所示,将在本地生成的 SSH 公钥复制到 GitLab,然后点击“添加密钥”即可完成SSH密钥的配置。

提示:关于本地生成和查看的 SSH 公钥方式,请参考7.10.2 和 7.10.3 小节。

image

如上图所示,已成功在 GitLab 中添加了一个本地电脑生成的公钥。

这样一来,以后在本地电脑,使用远程仓库的 SSH 地址执行 push (推送)命令的时候,就不需要登录了。

11.3.9、生成访问令牌

image

如上图所示,点击“编辑个人资料”->“访问令牌”,进入配置访问令牌的界面;然后点击“添加新令牌”按钮。

image

如上图所示,在添加访问令牌的配置界面中,设置该访问令牌的名称(任意名称,本例为for_idea),设置该令牌的过期时间,还有设置该令牌的权限(本例选中api,即全权限);然后点击“创建个人访问令牌”即可生成一个访问令牌。

image

如上图所示,访问令牌已成功生成。

注意:该访问令牌相当于 GitLab 的账号密码,所以不能向陌生人透露。
此外,该访问令牌要尽快复制保存,否则刷新页面后就消失;如果没能及时保存,也可以删除重新生成一个。

11.4、IDEA集成GitLab

11.4.1、安装GitLab插件

image

如上图所示,在“File”->“Settings”->“Version Control”中可以看到,IDEA 默认没有和 GitLab 的相关的功能,因此需要额外安装 GitLab 插件。

image

如上图所示,在“Plugins”->“Marketplace”中,搜索“GitLab”,即可找到 GitLab 插件来安装。

image

如上图所示,安装完成插件后,需要重启 IDEA 才能使用该插件。

image

如上图所示,GitLab 插件安装成功后,可以在“Version Control”中找到和 GitLab 的相关的功能。

11.4.2、配置GitLab服务器

image

如上图所示,在“Version Control”->“GitLab”中,点击“Add New GitLab Server”按钮,在弹窗中,配置 GitLab 服务器的地址。

注意:这里使用到了 11.3.9 节生成的访问令牌。

image

11.4.3、分享项目到GitLab

11.4.3.1、打开分享弹窗

image

如上图所示,点击“VCS”->“Import into Version Control”->“Share Project on GitLab”,即可打开分享项目到 GitLab 的弹窗。

11.4.3.2、设置远程库属性

image

如上图所示,在弹窗中设置远程库的名称(本例为 gitlab_gittest)、远程库的分组(本例为 lb-liaojy )、远程库的连接类型(本例为 SSH)以及远程库的可见级别(本例为 Public )。

11.4.3.3、分享操作效果

image

如上图所示,确认进行 SSH 连接。

image

如上图所示,在弹窗中点击“share”按钮(相当于创建远程库然后push操作)后,项目成功地被分享到 GitLab 。

image

如上图所示,在 GitLab 中可以看到远程库已存在。

关于如何使用 IDEA 推送更新到远程库、拉取更新到本地库以及克隆远程库到本地,请参考10.4.4、10.4.5 和 10.4.6 节,本文不再赘述。

posted @ 2024-07-26 20:24  Javaer1995  阅读(30)  评论(0编辑  收藏  举报