GitLab

来自Gea-Suan Lin's Wiki
跳到导航 跳到搜索
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

GitLab是一套以Git为中心而发展出来的软体。

简介

GitLab算是目前功能性与社群数量都比较成熟的方案。

安装

官方说明记忆体一般建议为8 GB,最少4 GB(在这种情况下需要外加4 GB的Swap)[1]。实际测试发现刚装完大约吃1.5 GB的记忆体,一个人自己用之后会到2.5 GB左右,对于只有自己在使用的服务可以考虑2 GB的机器加上1 GB的Swap。

这边介绍的是Ubuntu下的安装过程[2]

sudo apt install -y ca-certificates curl openssh-server postfix
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo EXTERNAL_URL="https://gitlab.example.com" apt install gitlab-ce

最近的版本可能会需要处理安装时Let's Encrypt凭证申请失败的相关的问题[3]

移除

移除需要多个步骤[4]

sudo gitlab-ctl uninstall; sudo gitlab-ctl cleanse; sudo gitlab-ctl remove-accounts; sudo apt purge -y gitlab-ce; sudo rm -rf /etc/gitlab /opt/gitlab /var/log/gitlab /var/opt/gitlab

设定

帐号

  • 安装完后马上透过网页连,可以设定密码。设定完后可以用预设帐号root与刚刚所设定的密码登入。
  • 通常会关闭注册(在网页界面上就可以关闭)。
  • 使用LDAP认证的设定需要透过/etc/gitlab/gitlab.rb修改,使用LDAPS的需要改设定使用port: 636encryption: 'simple_tls'
gitlab_rails['ldap_enabled'] = true
gitlab_rails['prevent_ldap_sign_in'] = false

gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
  main:
    label: 'LDAP'
    host: 'ldap.example.com'
    port: 389
    uid: 'uid'
    bind_dn: ''
    password: ''
    encryption: 'plain'
    verify_certificates: true
    smartcard_auth: false
    active_directory: false
    allow_username_or_email_login: true
    lowercase_usernames: true
    block_auto_created_users: false
    base: 'ou=People,dc=example,dc=com'
    user_filter: ''
    attributes:
      email: ['mail', 'email', 'userPrincipalName']
EOS

记录档

最容易爆掉的是PrometheusTSDB资料[5],这点可以设定/etc/gitlab/gitlab.rb内的prometheus['flags']限缩大小:

prometheus['flags'] = {
  'storage.tsdb.path' => "/var/opt/gitlab/prometheus/data",
  'storage.tsdb.retention.time' => "15d",
  'config.file' => "/var/opt/gitlab/prometheus/prometheus.yml",
}

自己的nginx

官方有文件说明如何修改[6],先从/etc/gitlab/gitlab.rb里关闭nginx相关设定。找到各自对应的区块加上对应的设定:

nginx['enable'] = false
web_server['external_users'] = ['www-data']
gitlab_rails['trusted_proxies'] = [ '127.0.0.0/8' ]

接下来让设定生效:

sudo gitlab-ctl reconfigure

后续就可以设定自己的nginx了。

常用指令

sudo gitlab-ctl reconfigure
sudo gitlab-ctl renew-le-certs
sudo gitlab-ctl restart

参考资料

外部连结