最近学习了GitLab的安装和部署,写一篇笔记记录一下过程。
GitLab是一个免费,开源的基于Git的分布式代码托管平台,它与GitHub很相似,不同的是公司可以通过GitLab建立属于公司的个人代码库,而要在GitHub使用此功能是需要收费的。
GitLab官网:about.gitlab.com/
准备工作
更改CentOS的Ip地址为静态地址:
我们先查看当前的ip地址是多少:
ifconfig
可以看到,我的是
192.168.30.200,我用的是虚拟机,默认是自动获取IPv4地址,我们知道了该Ip后,就可以去设置一个静态的ip。
点击有线连接,然后做出如下更改
之后在终端中重启网络服务:sudo service network restart即可。
更改主机名:
此步骤为了更方便地使用主机名在其他电脑上访问该服务器,我将主机名更改为gitlab-server
在终端中,输入sudo vim /etc/hostname
将文件更改为自己想要的主机名后,输入
:wq保存退出。
在Windows中设置域名映射
上一步我们设置了主机名,为的就是能在windows中直接使用主机名来访问CentOS服务器。但是windows如何知道这个主机名对应什么域名呢?
所以要设置域名映射。在C:\WINDOWS\System32\drivers\etc中,有一个hosts文件,打开后加入CentOS的Ipd地址和主机名,保存就完成了映射了。
下面是安装的步骤:
由于GitLab国内已由极狐GitLab代理,目前不科学上网的话,可以正常进入官网首页,但是一旦进入Resources->install页面,就会自动跳转到极狐GitLab的安装页面。两者差别不大,且极狐GitLab是中文版。但是我抱着用官方的态度,还是科学上网进入了原版下载页面。 如图:
点击install,然后跳转到安装页面,有一个CentOS7的安装教程:
1. 设置防火墙
此步骤是让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"官方是这样解释的:
这是展示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查找,之后更改
然后
:wq保存更改。
5.初始化GitLab,并启动
使用如下命令初始化GitLab
sudo gitlab-ctl reconfigure
注意,每次对GitLab的配置文件进行更改后,都需要重新初始化GitLab再重启,否则更改的内容不会生效。
之后会输出很多信息,需要等待一段时间。
初始化完成后,启动GitLab
sudo gitlab-ctl start
看到这些信息后,就说明启动成功了。
5.登录GitLab
在浏览器地址栏输入https://gitlab-server
同时也可以直接用Ip地址访问:
用户名为root,密码为 /etc/gitlab/initial_root_password文件中的初始密码,即可登录完成。
里面的内容和GitHub的几乎相同。