最后更新于 2021.6.25
前言
其实网上已经有很多安装 GitLab 的步骤说明文档,但由于并不是非常适用我的实际情况,一方面是把自己的实际情况分享出来,同时也是因为在前端工作了几年,从没正式记录过自己,也算是一个小小的改变叭~
云服务器的选择
恰逢双11,熊、猫、鹅各大厂云服务都有不小的优惠,最后选择鹅厂,因为........
这次的安装算是踩了不小的坑,我在熊厂和鹅厂的云服务都是新用户,这次先试试鹅厂的。
另一个原因,在我选择的价位下,熊厂和鹅厂的云服务器都是 100% 的 CPU 性能,而猫厂普遍是 10%~20%,不过不清楚 CPU 基准型号,有了解的欢迎指正......
u1s1,企业级应用,还是建议优先上猫厂,个人玩玩那就随意
初步选定鹅厂云,注册后也送了15天的 1C1G,我也是掉进了这个坑里,差点没出来!!!
1C1G 的历程
需要说明的是,这里的步骤也参考了网上的教程,这里算是一个总结
1. 更新软件包
yum update -y
2. 安装 sshd
// 安装
yum install -y curl policycoreutils-python openssh-server
// 开启用使用 sshd
systemctl enable sshd
systemctl start sshd
3. 配置 swap 交换分区
因为之前有了解过,gitlab 对内存有一定要求,这里的1G显然不满足使用,故增加2G虚拟内存
swapfile 是文件名,可以自定义
// 新建虚拟内存
dd if=/dev/zero of=/root/swapfile bs=1M count=2048
// 格式化为交换分区文件并启用
mkswap /root/swapfile
swapon /root/swapfile
4. 安装 gitlab
// 添加 gitlab 软件包到仓库
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
// 安装 gitlab
sudo EXTERNAL_URL="实例公网 IP 地址" yum install -y gitlab-ce
顺利的话你能看到这么一张图片,代表你成功了;但,是事情往往并不会这么顺利
在使用 1C1G 安装的过程中,遇到多次卡住、失败的情况,折腾好久都是 502,后来想想大概都是因为内存不足导致的,最后还是上了 2C4G;建议最低上 1C2G 的配置**
配置项修改(非必要)
如果你访问 IP 遇到了 502 错误,一般有两个原因:内存不足 or 端口冲突
1. 内存不足
增加虚拟内存的方法,见上方 ==> 配置 swap 交换分区
2. 修改默认端口
step 1
// 关闭gitlab服务
gitlab-ctl stop
step 2
// 打开vim编辑模式
vi /etc/gitlab/gitlab.rb
// 修改下面参数
原:#unicorn['port'] = 8080 修改 8070 默认是注释的去掉前面的#
新:unicorn['port'] = 8070
原:#unicorn['port'] = 8080 修改 8070 默认是注释的去掉前面的#
新:nginx['listen_port'] = 8090
// 按 i 进入编辑,编辑完成后按 ESC 退出编辑,最后再按 :wq 保存并退出 vim
step 3
// 再次进入vim,修改配置文件
vi /var/opt/gitlab/gitlab-rails/etc/unicorn.rb
// 此文件如果为空,则为新建
listen "127.0.0.1:8070", :tcp_nopush => true
step 4
// 修改gitlab nginx端口
vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
原:#listen *:80
新:listen *:8090
step 5
// 使配置生效
gitlab-ctl reconfigure
step 6
// 重启gitlab服务
gitlab-ctl restart
or
gitlab-ctl start
3. 配置 GitLab 的域名
// 打开配置文件
vi /etc/gitlab/gitlab.rb
// 修改
external_url 'http://your.domain.xxx'
// 也可以是公网ip地址
4. 安装 postfix
step 1
// 安装软件包
yum install -y postfix
step 2
// 启用并打开服务
systemctl enable postfix
systemctl start postfix
5. 配置防火墙
step 1
// 进入配置文件
vi /etc/sysctl.conf
step 2
// 启用并打开服务
systemctl enable firewalldsystemctl start firewalld
step 3
// 允许 http 通行; 也可以添加端口firewall-cmd --permanent --add-service=http// 关闭防火墙
systemctl stop firewalld.service
step 4
// 重启防火墙
systemctl reload firewalld
坑点注意
在实际安装过程中,尽管配置了swap虚拟内存,也修改了默认端口,但访问时仍会报 502。左思右想,买了个 2C4G 的服务器,这次安装一步到位,都不需要配 swap,直接就出现了小狐狸头;或许这意味着入门服务器最低可能都要 1C2G 了。
后记
后续,打算再搞个发送邮件和 ci/cd 自动化,还在研究,第二篇见啦
不要问我一个前端为啥折腾这些玩意,问就是折腾~
如果有错误的地方,烦请大佬给予指正~
修改了一些主观用语