一次 GitLab 部署小记
本文记录笔者的第一次 GitLab 部署和配置的经历。
1. 准备工作
一台云服务器,我使用的是阿里云 ECS,配置为:
- Ubuntu 18.04 x64
- CPU Core 2
- RAM 4GB
ECS 能够直接访问互联网。
2. 安装 GitLab
访问 TUNA - GitLab 页面,按不同操作系统的类型进行安装即可。下面将以 Ubuntu 18.04 为例:
# 首先信任 GitLab 的 GPG 公钥
curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null
# 将 `deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu bionic main` 写入以下文件中
vim /etc/apt/sources.list.d/gitlab-ce.list
# 安装 gitlab-ce
sudo apt-get update
sudo apt-get install gitlab-ce
3. 邮箱配置
阿里云默认封锁端口 25,我尝试使用 postfix 和 mailutils 并没有发送出邮件
所以下面将会使用 gitlab 的 smtp 配置网易邮箱
3.1 网易邮箱申请授权码
我们可以专门申请一个新的网易邮箱,用于 GitLab 发送邮件使用。
在网易邮箱的 设置 - POP3/SMTP/IMAP
中,开启 IMAP/SMTP服务
,我们可以得到一个用于第三方客户端登录的授权密码。
3.2 GitLab 邮箱配置
修改 /etc/gitlab/gitlab.rb
文件:
# 在文件中搜索 smtp 可定位到如下配置部分
# 修改并添加配置项目如下所示
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "邮箱账户@163.com"
gitlab_rails['smtp_password'] = "邮箱授权密码"
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = "邮箱账户@163.com"
user['git_user_email'] = "邮箱账户@163.com"
重新配置并启动:
gitlab-ctl stop
gitlab-ctl reconfigure
gitlab-ctl start
测试邮件是否能发送成功(注意检查垃圾箱):
gitlab-rails console
......
> Notify.test_email('目标邮箱地址@address.com', '邮件标题', '邮件内容').deliver_now
3.3 GitLab 其他配置
# /etc/gitlab/gitlab.rb
# 设置为云主机 ip 地址 + 想要启动服务的端口号
external_url 'http://39.107.44.33:8090'
同样需要 reconfigure
后生效。
4. 优化 GitLab 的 CPU 占用
毕竟云服务器的配置并不算很好,在 top
面板经常看到 GitLab 占用 CPU 比较高,所以在 /etc/gitlab/gitlab.rb
中再修改一些配置项:
gitlab_rails['time_zone'] = 'Asia/Shanghai'
unicorn['worker_processes'] = 2
unicorn['worker_memory_limit_min'] = "100 * 1 << 20"
unicorn['worker_memory_limit_max'] = "250 * 1 << 20"
postgresql['shared_buffers'] = "128MB"
postgresql['max_worker_processes'] = 2
sidekiq['max_concurrency'] = 10
sidekiq['min_concurrency'] = nil
prometheus_monitoring['enable'] = false
同样需要 reconfigure
后生效。
5. 登录 GitLab
初次访问 GitLab(external_url
指定的地址)会要求设置管理员账号密码。
在管理员的管理面板可以设置要求用户注册时需要邮件确认: