温馨提示×

ubuntu gitlab如何自定义配置

小樊
48
2025-10-12 10:41:59
栏目: 智能运维

Ubuntu下GitLab自定义配置指南

GitLab的自定义配置主要通过修改其核心配置文件/etc/gitlab/gitlab.rb实现,该文件包含了GitLab运行所需的各种参数(如外部访问URL、邮件服务、存储路径、端口设置等)。修改完成后,需运行sudo gitlab-ctl reconfigure命令使配置生效,并通过sudo gitlab-ctl restart重启服务。以下是常见的自定义配置场景及操作步骤:

1. 基础配置:修改外部访问URL

外部URL是GitLab的访问入口,决定了用户通过何种地址访问实例。修改external_url参数即可更改访问地址(支持HTTP/HTTPS、域名或IP):

sudo vim /etc/gitlab/gitlab.rb

找到external_url行(通常位于文件顶部),修改为你的实际地址(例如使用域名https://gitlab.example.com或IPhttp://192.168.1.100):

external_url 'https://gitlab.example.com'

保存退出后,执行sudo gitlab-ctl reconfigure使配置生效。

2. 邮件服务配置:实现通知功能

GitLab的邮件通知(如密码重置、合并请求提醒)需要配置SMTP服务。在/etc/gitlab/gitlab.rb中添加或修改以下参数(以Gmail SMTP为例):

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.gmail.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "your-email@gmail.com"
gitlab_rails['smtp_password'] = "your-email-password"
gitlab_rails['smtp_domain'] = "smtp.gmail.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['gitlab_email_from'] = "your-email@gmail.com"  # 发件人地址
gitlab_rails['gitlab_email_reply_to'] = "noreply@example.com"  # 回复地址

注意:若使用Gmail,需开启“允许不够安全的应用”或生成应用专用密码(推荐)。配置完成后执行sudo gitlab-ctl reconfigure生效。

3. 存储路径自定义:修改仓库数据目录

默认情况下,GitLab的仓库数据存储在/var/opt/gitlab/git-data/repositories。若需更改存储位置,可通过git_data_dirs参数设置:

sudo vim /etc/gitlab/gitlab.rb

添加或修改以下内容(例如将仓库数据迁移到/mnt/git-data):

git_data_dirs({ "default" => { "path" => "/mnt/git-data" } })

注意:若/mnt/git-data目录不存在,需提前创建并授权(sudo mkdir -p /mnt/git-data && sudo chown -R git:git /mnt/git-data)。修改后需执行以下步骤使配置生效:

sudo gitlab-ctl stop
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start

若目录中已有数据,需通过rsync命令迁移(sudo rsync -av /var/opt/gitlab/git-data/repositories /mnt/git-data/)。

4. 端口配置:修改Web/SSH端口

  • 修改Web端口:若需更改GitLab Web界面的访问端口(如从80改为9090),可修改nginx['listen_port']参数:
    nginx['listen_port'] = 9090
    external_url 'http://your-server-ip:9090'  # 同步修改external_url
    
  • 修改SSH端口:若需更改Git通过SSH访问的端口(如从22改为2222),可修改gitlab_shell['ssh_port']参数:
    gitlab_shell['ssh_port'] = 2222
    

修改后执行sudo gitlab-ctl reconfigure生效,并确保防火墙开放新端口(sudo ufw allow 9090/tcpsudo ufw allow 2222/tcp)。

5. 自动续订Let’s Encrypt证书:避免证书过期

GitLab默认使用Let’s Encrypt签发免费SSL证书,证书有效期为90天。可通过以下参数设置自动续订时间(例如每月1日凌晨2点30分续订):

letsencrypt['auto_renew_hour'] = "2"
letsencrypt['auto_renew_minute'] = "30"
letsencrypt['auto_renew_day_of_month'] = "1"

若需禁用自动续订,可设置letsencrypt['auto_renew'] = false。修改后执行sudo gitlab-ctl reconfigure生效。

6. 禁用非必要组件:节约系统资源

若不需要某些组件(如Prometheus监控、Grafana仪表盘、Alertmanager告警),可禁用它们以减少资源占用:

prometheus['enable'] = false
grafana['enable'] = false
alertmanager['enable'] = false
node_exporter['enable'] = false

修改后执行sudo gitlab-ctl reconfigure生效。

注意事项

  • 备份配置:修改配置文件前,建议备份/etc/gitlab/gitlab.rbsudo cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.bak)。
  • 查看日志:若配置生效后出现问题,可通过sudo gitlab-ctl tail查看实时日志定位问题。
  • 版本兼容性:不同GitLab版本的配置参数可能略有差异,建议参考对应版本的官方文档(如GitLab 17.5的配置文档)。

0