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/
如上图所示,本文选择使用 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、上传安装包到服务器
如上图所示,使用 mobaxterm 之类的工具,将 rpm 安装包上传到 CentOS 服务器。
11.2.4、运行安装包
rpm -ivh 安装包名称
错误:依赖检测失败:
policycoreutils-python 被 gitlab-ce-16.10.6-ce.0.el7.x86_64 需要
注意:如果运行 GitLab 安装包时存在上述错误,则需要先安装 policycoreutils-python 依赖。
11.2.5、修改external_url配置
如上图所示,external_url 配置在 /etc/gitlab/gitlab.rb 文件中。
vi /etc/gitlab/gitlab.rb
如上图所示,external_url 配置默认值为 http://gitlab.example.com 。
如上图所示,将 external_url 配置修改为 'http://192.168.56.120:10005 。
其中,192.168.56.120 是 GitLab 所在的服务器的 IP ;10005 是自定义的端口,否则 GitLab 会占用 80 端口。
11.2.6、重新加载配置文件
gitlab-ctl reconfigure
注意:重新加载配置文件的过程比较耗时,耐心等待即可,出现 gitlab Reconfigured! 即操作成功。
11.2.7、查看端口占用情况
上图为 CentOS 自身所使用的端口。
上图为重新加载 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、查看管理员初始化密码
如上图所示,在第一次成功重新加载配置文件后,会为 GitLab 的 root 管理员账号随机生成一个初始化密码;该密码会在 24 小时后自动删除。
cat /etc/gitlab/initial_root_password
11.3、Gitlab的基本使用
11.3.1、访问GitLab登录页
如上图所示,使用在 11.2.5 节配置的 external_url (http://192.168.56.120:10005)即可访问 GitLab 登录页。
注意:如果访问不了登录页,可能是服务器的防火墙问题,关掉防火墙即可;
systemctl stop firewalld
11.3.2、登录root管理员账号
如上图所示,使用生成的初始化密码,登录root管理员账号。
如上图所示,这便是 GitLab 的主页。
11.3.3、修改界面语言为中文
如上图所示,点击“Preference”。
如上图所示,将 Language 选择为简体中文,然后保存修改。
11.3.4、修改root管理员密码
如上图所示,点击“编辑个人资料”。
如上图所示,在“密码”界面中,即可修改密码。
如上图所示,修改密码后,需要重新登录。
11.3.5、停用注册功能
如上图所示,GitLab 默认开启自由注册账号功能,但是 GitLab 一般用于企业内部,因此一般都会停用注册功能,账号应由 root 管理员创建。
如上图所示,取消“已启用注册功能”,然后保存更改即可。
如上图所示,停用注册功能后,登陆页面的“立即注册”入口消失了。
如上图所示,如果想恢复启用注册功能,在“管理中心”->“设置”->“通用”中,可以找到“注册限制”的配置项恢复配置。
11.3.6、创建新账号
如上图所示,在“管理中心”->“概览”->“用户”中,可以找到创建新用户的按钮。
如上图所示,设置新用户的名称、用户名和电子邮件。
如上图所示,设置新用户的权限为“管理员”。
如上图所示,新建用户成功后,会自动跳转到该用户的资料页,可以点击“编辑”按钮,为该用户重置密码。
如上图所示,为该用户设置密码后,点击“保存更改”即可。
11.3.7、创建远程仓库
如上图所示,点击“创建项目”。
如上图所示,选择“创建空白项目”。
如上图所示,设置仓库名称、仓库归属用户、仓库可见级别,然后点击“新建项目”按钮,即可创建一个远程库仓库。
如上图所示,仓库新建成功,可以获取到这个仓库的 HTTP 和 SSH 地址。
11.3.8、配置SSH密钥
如上图所示,点击“编辑个人资料”->“SSH密钥”,进入配置SSH密钥的界面;然后点击“添加新密钥”按钮。
如上图所示,将在本地生成的 SSH 公钥复制到 GitLab,然后点击“添加密钥”即可完成SSH密钥的配置。
提示:关于本地生成和查看的 SSH 公钥方式,请参考7.10.2 和 7.10.3 小节。
如上图所示,已成功在 GitLab 中添加了一个本地电脑生成的公钥。
这样一来,以后在本地电脑,使用远程仓库的 SSH 地址执行 push (推送)命令的时候,就不需要登录了。
11.3.9、生成访问令牌
如上图所示,点击“编辑个人资料”->“访问令牌”,进入配置访问令牌的界面;然后点击“添加新令牌”按钮。
如上图所示,在添加访问令牌的配置界面中,设置该访问令牌的名称(任意名称,本例为for_idea),设置该令牌的过期时间,还有设置该令牌的权限(本例选中api,即全权限);然后点击“创建个人访问令牌”即可生成一个访问令牌。
如上图所示,访问令牌已成功生成。
注意:该访问令牌相当于 GitLab 的账号密码,所以不能向陌生人透露。
此外,该访问令牌要尽快复制保存,否则刷新页面后就消失;如果没能及时保存,也可以删除重新生成一个。
11.4、IDEA集成GitLab
11.4.1、安装GitLab插件
如上图所示,在“File”->“Settings”->“Version Control”中可以看到,IDEA 默认没有和 GitLab 的相关的功能,因此需要额外安装 GitLab 插件。
如上图所示,在“Plugins”->“Marketplace”中,搜索“GitLab”,即可找到 GitLab 插件来安装。
如上图所示,安装完成插件后,需要重启 IDEA 才能使用该插件。
如上图所示,GitLab 插件安装成功后,可以在“Version Control”中找到和 GitLab 的相关的功能。
11.4.2、配置GitLab服务器
如上图所示,在“Version Control”->“GitLab”中,点击“Add New GitLab Server”按钮,在弹窗中,配置 GitLab 服务器的地址。
注意:这里使用到了 11.3.9 节生成的访问令牌。
11.4.3、分享项目到GitLab
11.4.3.1、打开分享弹窗
如上图所示,点击“VCS”->“Import into Version Control”->“Share Project on GitLab”,即可打开分享项目到 GitLab 的弹窗。
11.4.3.2、设置远程库属性
如上图所示,在弹窗中设置远程库的名称(本例为 gitlab_gittest)、远程库的分组(本例为 lb-liaojy )、远程库的连接类型(本例为 SSH)以及远程库的可见级别(本例为 Public )。
11.4.3.3、分享操作效果
如上图所示,确认进行 SSH 连接。
如上图所示,在弹窗中点击“share”按钮(相当于创建远程库然后push操作)后,项目成功地被分享到 GitLab 。
如上图所示,在 GitLab 中可以看到远程库已存在。
关于如何使用 IDEA 推送更新到远程库、拉取更新到本地库以及克隆远程库到本地,请参考10.4.4、10.4.5 和 10.4.6 节,本文不再赘述。
本文来自博客园,作者:Javaer1995,转载请注明原文链接:https://www.cnblogs.com/Javaer1995/p/18240514