腾讯云安装私有 GitLab(一)

2,234 阅读4分钟

最后更新于 2020.11.15

前言

其实网上已经有很多安装 GitLab 的步骤说明文档,但由于并不是非常适用我的实际情况,一方面是把自己的实际情况分享出来,同时也是因为在前端工作了几年,从没正式记录过自己,也算是一个小小的改变叭~

云服务器的选择

恰逢双11,阿里、腾讯、百度等云服务都有不小的优惠,之所以选择腾讯,因为........

这次的安装算是踩了不小的坑,我在百度和腾讯的云服务都是新用户,原本考虑百度,但网上都说百度工单响应很慢(未经考证,纯属网上传言),考虑到我一个新手,难免会用到,就暂时不考虑。而腾讯云和阿里也各有各的黑历史,这里不再展开。

另一个原因,在我选择的价位下,百度和腾讯的云服务器都是 100% 的 CPU 性能,而阿里普遍是 10%~20%,虽然不清楚 CPU 基准型号,但还是无脑PASS了......

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 firewalld systemctl 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 自动化,还在研究,第二篇见啦

不要问我一个前端为啥折腾这些玩意,问就是折腾~

如果有错误的地方,烦请大佬给予指正~