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

參考資料

外部連結