安裝 gitlab ee

軟件需求:

  • 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" }
})
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。

QQ截圖20200622165148.png
QQ截圖20200622165411.png
QQ截圖20200622165457.png

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.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末半哟,一起剝皮案震驚了整個濱河市酬滤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌寓涨,老刑警劉巖敏晤,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異缅茉,居然都是意外死亡,警方通過查閱死者的電腦和手機男摧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門蔬墩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人耗拓,你說我怎么就攤上這事拇颅。” “怎么了乔询?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵樟插,是天一觀的道長。 經(jīng)常有香客問我竿刁,道長黄锤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任食拜,我火速辦了婚禮鸵熟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘负甸。我一直安慰自己流强,他們只是感情好,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布呻待。 她就那樣靜靜地躺著打月,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蚕捉。 梳的紋絲不亂的頭發(fā)上奏篙,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天,我揣著相機與錄音鱼冀,去河邊找鬼报破。 笑死悠就,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的充易。 我是一名探鬼主播梗脾,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼盹靴!你這毒婦竟也來了炸茧?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤稿静,失蹤者是張志新(化名)和其女友劉穎梭冠,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體改备,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡控漠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了悬钳。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盐捷。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖默勾,靈堂內(nèi)的尸體忽然破棺而出碉渡,到底是詐尸還是另有隱情,我是刑警寧澤母剥,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布滞诺,位于F島的核電站,受9級特大地震影響环疼,放射性物質(zhì)發(fā)生泄漏习霹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一炫隶、第九天 我趴在偏房一處隱蔽的房頂上張望序愚。 院中可真熱鬧,春花似錦等限、人聲如沸爸吮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽形娇。三九已至,卻和暖如春筹误,著一層夾襖步出監(jiān)牢的瞬間桐早,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留哄酝,地道東北人友存。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像陶衅,于是被迫代替她去往敵國和親屡立。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345