一次 GitLab 部署小记

一次 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 指定的地址)会要求设置管理员账号密码。

在管理员的管理面板可以设置要求用户注册时需要邮件确认:
一次 GitLab 部署小记_第1张图片


参考资料

  • 阿里云Centos7中GitLab使用smtp 163邮箱发送邮件的注意事宜
  • 解决gitlab仓库占用CPU和内存过高的问题

你可能感兴趣的:(配置和安装,Linux,开发)