軟件需求:
-
Ruby versions
GitLab 12.2 之后掰盘,需要 Ruby (MRI) 2.6 版本烤宙。 -
Go versions
Go需要1.13以上版本。 -
Git versions
GitLab 11.11 之后眼坏,僅支持 Git 2.24.x 以上版本。 -
Node.js versions
GitLab 12.9 之后捏检,需要node.js 10.13.0 以上版本。建議Node 12.x不皆,更快未檩。 -
Redis versions
需要Redis 5.0+,從GitLab 13.0開始粟焊,低版本不支持了湖蜕。
硬件需求:
-
存儲
存儲大小取決于你需要存儲在倉庫的內(nèi)容多少热凹。
如果考慮存儲需要平滑的增長,可以考慮LVM技術(shù)蚀浆。
除了本地磁盤系統(tǒng)挎峦,你還可以使用網(wǎng)絡文件系統(tǒng)(NFS)香追,NAS、SAN坦胶、AWS_EBS等等透典。
如果內(nèi)存和CPU都不錯,瓶頸在磁盤尋道時間顿苇。那么高轉(zhuǎn)速硬盤(7200轉(zhuǎn)以上)或SSD硬盤會提升Gitlab的響應速度峭咒。
注意:
因為文件系統(tǒng)性能會影響 GitLab 的總體性能,我們不建議使用 AWS EFS (NFS云服務)作為存儲.
CPU
CPU需求取決與用戶數(shù)和期望的負載纪岁。
4 cores 最低配置凑队,支持 500 users。
8 cores 支持 1000 users幔翰。
更多 users? 參見 reference architectures page內(nèi)存
內(nèi)存需求取決與用戶數(shù)和期望的負載漩氨。
4GB RAM 最低配置,支持 500 users遗增。
8GB RAM 支持 1000 users叫惊。
更多 users? 參見 reference architectures page數(shù)據(jù)庫
僅支持PostgreSQL數(shù)據(jù)庫。自GitLab 12.1后就不支持MySQL了做修。
PG需要5-10GB磁盤空間霍狰。
如下是版本建議
GitLab version | Minimum PostgreSQL version |
---|---|
10.0 | 9.6 |
12.10 | 11 |
13.0 | 11 |
GitLab database必須開啟 pg_trgm
擴展。使用PostgreSQL super user 開啟擴展 缓待。
有些系統(tǒng)蚓耽,還需要安裝額外的包來支持擴展功能 (for example, postgresql-contrib
) 。
GitLab Geo旋炒,Puma 步悠,Unicorn Workers,Redis and Sidekiq瘫镇,Prometheus and its exporters鼎兽,GitLab Runner
參見官方文檔瀏覽器
GitLab 13.0 (May 2020) 已經(jīng)停止了對IE11的官方支持答姥。GitLab 13.4 (September 2020) 會移除所有支持IE11的代碼。
支持如下瀏覽器:
Omnibus packages 安裝 Gitlab
Install self-managed GitLab
官方強烈建議使用官方Linux包安裝谚咬,更快安裝鹦付、更易升級, 并且它包含了其他安裝方式?jīng)]有的特性來加強可靠性择卦。強烈 建議最少 4GB 可用內(nèi)存 運行Gitlab敲长。
基于CentOS7 安裝
1. 安裝依賴項
關(guān)閉selinux
關(guān)閉firwalld
[root@VM_2_12_centos ~]# yum install -y curl policycoreutils-python openssh-server
安裝Postfix
[root@VM_2_12_centos ~]# yum install postfix
[root@VM_2_12_centos ~]# systemctl enable postfix
[root@VM_2_12_centos ~]# systemctl start postfix
2. 配置 GitLab 倉庫并安裝軟件
- 配置倉庫
[root@VM_2_12_centos ~]# curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
[root@VM_2_12_centos ~]# yum repolist
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
repo id repo name status
epel/7/x86_64 EPEL for redhat/centos 7 - x86_64 13,327
extras/7/x86_64 Qcloud centos extras - x86_64 397
gitlab_gitlab-ee/x86_64 gitlab_gitlab-ee 584
gitlab_gitlab-ee-source gitlab_gitlab-ee-source 0
os/7/x86_64 Qcloud centos os - x86_64 10,070
updates/7/x86_64 Qcloud centos updates - x86_64 759
repolist: 25,137
[root@VM_2_12_centos ~]#
- 安裝gitlab-ee
說明:
官方推薦命令sudo EXTERNAL_URL="https://gitlab.example.com" yum install -y gitlab-ee
該命令在安裝階段即指定了EXTERNAL_URL變量用于配置文件。這里還指定了https秉继,會在gitlab自帶的nginx上配置證書祈噪。這里的默認設置是gitlab服務器配置公網(wǎng)地址、域名尚辑、https對外提供服務辑鲤。如果需要使用自己的證書,前置負載均衡杠茬,建議手動配置月褥。
這里使用騰訊云CVM+負載均衡CLB+證書。所以不帶參數(shù)安裝瓢喉,參數(shù)手動配置宁赤。
[root@VM_2_12_centos ~]# yum install -y gitlab-ee
[root@VM_2_12_centos ~]# rpm -ql gitlab-ee-13.0.6-ee.0.el7.x86_64 |more
/opt
/opt/gitlab
... omitted ...
可以看到安裝文件都部署于/opt/gitlab目錄下
[root@VM_2_12_centos ~]# ls /opt/gitlab/
bin dependency_licenses.json embedded etc init LICENSE LICENSES service sv version-manifest.json version-manifest.txt
3. 配置文件
https://docs.gitlab.com/omnibus/README.html#installation-and-configuration-using-omnibus-package
配置文件 /etc/gitlab/gitlab.rb
- 外部域名
external_url "http://gitlab.example.com"
執(zhí)行gitlab-ctl reconfigure
使配置生效
- Git data 存儲位置
默認,Omnibus GitLab 將 Git repository data 存儲在 /var/opt/gitlab/git-data灯荧。
倉庫作為子目錄存儲在該目錄下礁击。
在配置文件 /etc/gitlab/gitlab.rb 增加如下行,變更git-data目錄的位置:
git_data_dirs({ "default" => { "path" => "/mnt/nas/git-data" } })
也可以添加多個 Git data 目錄逗载,配置如下:
git_data_dirs({
"default" => { "path" => "/var/opt/gitlab/git-data" },
"alternative" => { "path" => "/mnt/nas/git-data" }
})
- SMTP
官方文檔列出了多個郵件服務商的配置方式
國內(nèi)office365是由世紀互聯(lián)運營的哆窿,配置略有變更:
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.partner.outlook.cn"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "username@yourdomain.com"
gitlab_rails['smtp_password'] = "password"
gitlab_rails['smtp_domain'] = "yourdomain.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
gitlab_rails['gitlab_email_from'] = 'username@yourdomain.com'
- 修改代理配置(前置負載均衡作為代理)
官方Nginx配置 Change the default proxy headers
修改訪問地址:
nginx['enable'] = true
nginx['proxy_set_headers'] = {
"Host" => "$http_host_with_default",
"X-Real-IP" => "$remote_addr",
"X-Forwarded-For" => "$proxy_add_x_forwarded_for",
"X-Forwarded-Proto" => "$scheme",
"X-Forwarded-Ssl" => "on",
"Upgrade" => "$http_upgrade",
"Connection" => "$connection_upgrade"
}
- 根據(jù)配置文件進行g(shù)itlab參數(shù)配置
[root@VM_2_12_centos gitlab]# gitlab-ctl reconfigure
... omitted ...
Running handlers:
Running handlers complete
Chef Client finished, 545/1498 resources updated in 03 minutes 37 seconds
gitlab Reconfigured!
附件: 我的配置文件
[root@VM_2_12_centos gitlab]# cat gitlab.rb |grep -v '#' |sed '/^$/d' external_url 'http://gitlab.xxx.com' git_data_dirs({ "default" => { "path" => "/lvmdata/git-data" } }) gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.partner.outlook.cn" gitlab_rails['smtp_port'] = 587 gitlab_rails['smtp_user_name'] = "rhcsys@xxx.com" gitlab_rails['smtp_password'] = "密碼不能告訴你" gitlab_rails['smtp_domain'] = "xxx.com" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = false gitlab_rails['gitlab_email_from'] = "username@yourdomain.com" nginx['enable'] = true nginx['proxy_set_headers'] = { "Host" => "$http_host_with_default", "X-Real-IP" => "$remote_addr", "X-Forwarded-For" => "$proxy_add_x_forwarded_for", "X-Forwarded-Proto" => "$scheme", "X-Forwarded-Ssl" => "on", "Upgrade" => "$http_upgrade", "Connection" => "$connection_upgrade" }
4. 配置克隆地址:
默認使用externel_url作為克隆地址。
但是在本架構(gòu)中厉斟,Gitlab僅提供http訪問挚躯,https服務通過前置負載均衡提供。
那么擦秽,需要在/etc/gitlab/gitlab.rb內(nèi)配置http地址码荔,克隆地址配置為負載均衡提供的https訪問地址。
克隆地址配置文件/opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml感挥。
在/etc/gitlab/gitlab.rb初始化后缩搅,再手動配置。
手動修改克隆地址后触幼,不能再執(zhí)行 gitlab-ctl reconfigure硼瓣。gitlab-ctl reconfigure會使用 /etc/gitlab/gitlab.rb覆蓋所有配置。
或者執(zhí)行g(shù)itlab-ctl reconfigure后,再手動配置下也行
修改配置文件/opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml:
## GitLab settings
gitlab:
## Web server settings (note: host is the FQDN, do not include http://)
host: git.wodedizhi.com
port: 443
https: true
4. 啟動服務
在使用 gitlab-ctl reconfigure
命令初始化配置的時候堂鲤,創(chuàng)建了gitlab-runsvdir.service
可以使用如下命令啟動/停止服務
[root@VM_2_12_centos ~]# systemctl status gitlab-runsvdir.service
[root@VM_2_12_centos ~]# systemctl stop gitlab-runsvdir.service
查看服務狀態(tài)
[root@VM_2_12_centos ~]# gitlab-ctl status
run: alertmanager: (pid 16432) 560s; run: log: (pid 15884) 636s
run: gitaly: (pid 16349) 563s; run: log: (pid 15114) 754s
run: gitlab-exporter: (pid 16356) 563s; run: log: (pid 15762) 654s
run: gitlab-workhorse: (pid 16322) 563s; run: log: (pid 15617) 678s
run: grafana: (pid 16488) 559s; run: log: (pid 16256) 580s
run: logrotate: (pid 15661) 669s; run: log: (pid 15677) 666s
run: nginx: (pid 15631) 675s; run: log: (pid 15647) 674s
run: node-exporter: (pid 16336) 563s; run: log: (pid 15720) 660s
run: postgres-exporter: (pid 16481) 560s; run: log: (pid 15939) 631s
run: postgresql: (pid 15236) 749s; run: log: (pid 15286) 748s
run: prometheus: (pid 16369) 562s; run: log: (pid 15830) 643s
run: puma: (pid 15516) 693s; run: log: (pid 15537) 690s
run: redis: (pid 15048) 761s; run: log: (pid 15068) 760s
run: redis-exporter: (pid 16359) 562s; run: log: (pid 15795) 648s
run: sidekiq: (pid 15545) 687s; run: log: (pid 15561) 684s
5. 初始化登錄配置
第一次登陸亿傅,會重定向到重設密碼頁面。輸入初始管理員密碼瘟栖,然后會返回到登陸頁面葵擎。默認賬戶root。
See our documentation for detailed instructions on installing and configuration.
6. Set up your communication preferences
7. Configure sign-up restrictions and sign-in preferences.
After completing your installation, consider the recommended practices to secure your GitLab instance.