根据公司要求,需要在阿里云服务器上搭建GitLab,本文介绍搭建Gitlab的步骤,以及我遇到的问题及解决办法。
搭建gitlab可以参考官方教程:云服务器 ECS 建站教程:GitLab的安装及使用-阿里云开发者社区 (aliyun.com)
根据官方教程介绍有两种部署方式:镜像部署和手动部署,我这边使用的是手动部署,以下内容也将针对手动部署介绍。
官网给出的ECS配置要求为:内存2G以上。
提示:如果你没有阿里云服务器,可以申请免费试用哦(阿里云官网有个试用中心,选取自己想要试用的产品就好了)
踩坑1:我申请了一个ECS共享型n4、1核2GiB的实例,操作系统CentOS 7.6 64位,搭建完之后访问GitLab总是显示502,偶尔一两次能够正常访问GitLab(该配置无法访问解决办法请看第五节问题2)。之后又申请了一个ECS共享型n4、2核4GiB的实例,操作系统CentOS 7.2 64位,该配置可以正常访问GitLab。
避坑点1:申请ECS时选择实例配置不要太低,尽量不要选择1核2G的。
搭建步骤可参考本文开篇给的官方教程链接。此处只针对手动部署进行介绍:
1、远程连接ECS实例,进入实例界面
2、配置yum源
vim /etc/yum.repos.d/gitlab-ce.repo
复制以下内容(按“i” 键进入编辑模式,编辑完成后按“ESC”键退出编辑模式,然后输入“:wq”进行保存退出):
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
2、更改本地yum缓存(此处执行时间较长,稍等一会)
sudo yum makecache
3、安装GitLab社区版(等待安装完成即可)
sudo yum intall gitlab-ce #自动安装最新版,我使用的这条命令
sudo yum install gitlab-ce-x.x.x #安装指定版本
4、安装完成后启动gitlab
sudo gitlab-ctl start # 启动所有 gitlab 组件;
其他gitlab常用命令
sudo gitlab-ctl start # 启动所有 gitlab 组件;
sudo gitlab-ctl stop # 停止所有 gitlab 组件;
sudo gitlab-ctl restart # 重启所有 gitlab 组件;
sudo gitlab-ctl status # 查看 gitlab 状态;
sudo gitlab-ctl reconfigure # 重新加载gitlab配置;
sudo vim /etc/gitlab/gitlab.rb # 修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab;
sudo gitlab-ctl tail # 查看日志;
至此gitlab搭建完成,使用云服务器ECS公网进行访问gitlab,浏览器中输入ECS公网IP即可访问gitlab,默认是80端口。
如果默认端口80被占用,可以修改gitlab的默认端口,修改gitlab默认端口的方法请参考上一篇文章:问题记录:搭建gitlab,初始化无法设置管理员密码(修改gitlab默认端口)_Tanasha114的博客-CSDN博客
正常情况下,搭建完gitlab过几分钟访问ECS公网IP即可登录到Gitlab界面,首次登录会强制用户修改密码(此处修改的密码是管理员账户root的密码,修改完成后使用root和新密码进行登录gitlab管理界面)。(如果未能正常访问gitlab请看下一节)
修改密码界面如下图:
至此,进入gitlab管理界面,基本就没什么问题了,可以自由探索gitlab了。
然而有些人可能没有这么顺利,会遇到一些问题比如我,请看下一节我遇到的问题。
问题1:输入公网ip无法显示gitlab界面,显示无法访问此网站
此问题请看ECS实例安全组,有没有开通80端口,或者你搭建gitlab时开放的其他端口。
以下端口应该是申请ecs时默认开放的,不要删除,可以把优先级改成1。如果不小心删了或者开了其他安全组,记得把这些端口添加上。另外如果你有修改gitlab的默认端口,也要记得在此处设置允许访问端口。
问题2:访问公网ip显示502
情况一:gitlab服务重启后立马访问gitlab可能会显示502,此情况需要等待几分钟再试。
情况二:选择的阿里云服务器ECS实例系统配置太低,如我第一次申请的配置是1核2GiB,解决办法启用swap分区。步骤如下:
1、查看swap分区是否启动(未启用的话输入命令后只显示表头)
cat /proc/swaps
2、创建swap分区4G(/data/swap访问不到,后面所有步骤都替换成/mnt/swap)
dd if=/dev/zero of=/data/swap bs=512 count=8388616
如果上面这条命令创建失败,显示报错信息为 /data/swap 目录不存在,请用下面这条命令:
dd if=/dev/zero of=/mnt/swap bs=512 count=8388616
3、通过mkswap命令将上面新建出的文件做成swap分区
备注:前面如果用的/mnt/swap则下面这条命令也用/mnt/swap
mkswap /data/swap
4、查看内核参数vm.swappiness中的数值是否为0,如果为0则设置内核参数调整成60
查看:
cat /proc/sys/vm/swappiness
设置:
sysctl -w vm.swappiness=60
(备注:若想永久修改,则可以使用vim打开编辑/etc/sysctl.conf文件,改文件中vm.swappiness变量配置,该配置默认为0)
5、启用swap分区(注意:前面如果用的/mnt/swap则下面这条命令也用/mnt/swap)
swapon /data/swap
6、修改/etc/fstab文件(注意:前面如果用的/mnt/swap则下面这条命令也用/mnt/swap)
可以 vim 打开文件 添加 /data/swap swap swap defaults 0 0
也可以使用命令
echo “/data/swap swap swap defaults 0 0” >> /etc/fstab
7、最后查看swap分区是否成功
cat /proc/swaps
8、重启gitlab即可
问题3:首次访问gitlab,初始化无法设置管理员密码
请看上一篇文章:问题记录:搭建gitlab,初始化无法设置管理员密码(解决办法:修改gitlab默认端口)_Tanasha114的博客-CSDN博客