一次 GitLab 部署小记

31 篇文章 0 订阅
16 篇文章 0 订阅

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

在管理员的管理面板可以设置要求用户注册时需要邮件确认:
Admin


参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值