2023 GitLab在CentOS7上的安装与部署

693 阅读4分钟

最近学习了GitLab的安装和部署,写一篇笔记记录一下过程。

GitLab是一个免费,开源的基于Git的分布式代码托管平台,它与GitHub很相似,不同的是公司可以通过GitLab建立属于公司的个人代码库,而要在GitHub使用此功能是需要收费的。

GitLab官网:about.gitlab.com/

准备工作

更改CentOS的Ip地址为静态地址:

我们先查看当前的ip地址是多少: ifconfig

image.png 可以看到,我的是192.168.30.200,我用的是虚拟机,默认是自动获取IPv4地址,我们知道了该Ip后,就可以去设置一个静态的ip。 image.png 点击有线连接,然后做出如下更改

image.png

之后在终端中重启网络服务:sudo service network restart即可。

更改主机名:

此步骤为了更方便地使用主机名在其他电脑上访问该服务器,我将主机名更改为gitlab-server

在终端中,输入sudo vim /etc/hostname

image.png 将文件更改为自己想要的主机名后,输入:wq保存退出。

在Windows中设置域名映射

上一步我们设置了主机名,为的就是能在windows中直接使用主机名来访问CentOS服务器。但是windows如何知道这个主机名对应什么域名呢?

所以要设置域名映射。在C:\WINDOWS\System32\drivers\etc中,有一个hosts文件,打开后加入CentOS的Ipd地址和主机名,保存就完成了映射了。

image.png


下面是安装的步骤:

由于GitLab国内已由极狐GitLab代理,目前不科学上网的话,可以正常进入官网首页,但是一旦进入Resources->install页面,就会自动跳转到极狐GitLab的安装页面。两者差别不大,且极狐GitLab是中文版。但是我抱着用官方的态度,还是科学上网进入了原版下载页面。 如图:

image.png

点击install,然后跳转到安装页面,有一个CentOS7的安装教程:

image.png

1. 设置防火墙

image.png 此步骤是让CentOS防火墙允许HTTP,HTTPS,SSH请求,因为在GitLab中Clone代码是要发起这些请求的。

sudo yum install -y curl policycoreutils-python openssh-server perl
# Enable OpenSSH server daemon if not enabled: sudo systemctl status sshd
sudo systemctl enable sshd
sudo systemctl start sshd
# Check if opening the firewall is needed with: sudo systemctl status firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld

2. 安装GitLab

在下载GitLab安装包之前,我们需要先下载GitLab的package repository

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash

完成后,直接用命令行安装即可,需要等待一段时间。

sudo EXTERNAL_URL="https://gitlab.example.com" yum install -y gitlab-ee

这里的EXTERNAL_URL="https://gitlab.example.com"官方是这样解释的:

image.png 这是展示repository clone link的URL,这里的设置和Clone link有关。并且我经过测试,这里的协议也是与我们访问的协议相关联的,如果这里设置为gitlab.example.com, 那么登录GitLab时的协议就只能是http。 在安装时我们可不管,这个之后可以再设置。

3.初始用户名和密码

安装完成后,GitLab会自动生成一个初始的密码,我们可以使用root账户登录。 初始密码在/etc/gitlab/initial_root_password中,使用cat /etc/gitlab/initial_root_password查看。我们先把初始的密码复制下来保存一下,因为之后的GitLab初始化可能会将此文件删除。

4.设置GitLab的external_url

之前提到external_url与代码克隆链接相关。如果我们不重新设定external_url,那么HTTP Clone Link就会是这样的:https://gitlab.example.com/gitlab-instance-eed71954/gittest.git。 可以看到主域名是https://gitlab.example.com,即external_url,但是这个链接实际上是无效的,如果你用这个链接去克隆代码,那么就会无法访问,因为我们访问配置在CentOS上的GitLab库时,实际上是用CentOS的IP地址去访问的,因此克隆也是用Ip地址去访问链接。而https://gitlab.example.com这个链接根本不存在,所以会导致无法访问。

在配置了Windows域名映射的前提下,我们在CentOS终端中,可以将external_url设置为https://gitlab-server,也可也直接设置为CentOS的IP地址,比如https://192.168.30.200

sudo vim /etc/gitlab/gitlab.rb

在vim中输入命令/external_url查找,之后更改

image.png 然后:wq保存更改。

5.初始化GitLab,并启动

使用如下命令初始化GitLab

sudo gitlab-ctl reconfigure

注意,每次对GitLab的配置文件进行更改后,都需要重新初始化GitLab再重启,否则更改的内容不会生效。

之后会输出很多信息,需要等待一段时间。

初始化完成后,启动GitLab

sudo gitlab-ctl start

image.png

看到这些信息后,就说明启动成功了。


5.登录GitLab

在浏览器地址栏输入https://gitlab-server

image.png

同时也可以直接用Ip地址访问:

https://192.168.30.200

用户名为root,密码为 /etc/gitlab/initial_root_password文件中的初始密码,即可登录完成。 里面的内容和GitHub的几乎相同。