GitLab

出自Gea-Suan Lin's Wiki
跳至導覽 跳至搜尋
可列印版不再被支援且可能有渲染錯誤。請更新您的瀏覽器書籤並改用瀏覽器預設的列印功能。

GitLab是一套以Git為中心而發展出來的軟體。

簡介

GitLab算是目前功能性與社群數量都比較成熟的方案。

安裝

官方的建議是(服務500人)[1]

  • 4 CPU cores
  • 4 GB RAM
  • 2 GB Swap

實際測試發現剛裝完大約吃1.5 GB的記憶體,一個人自己用之後會到3 GB左右。

這邊介紹的是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

設定

帳號

  • 安裝完後console會出現指示初始密碼,目前的版本會在/etc/gitlab/initial_root_password
  • 通常會關閉註冊(在網頁界面上就可以關閉)。
  • 使用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

更新Let's Encrypt的憑證:

sudo gitlab-ctl renew-le-certs

相關連結

參考資料

外部連結