安装 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开始,低版本不支持了。

硬件需求:

  • 存储
    存储大小取决于你需要存储在仓库的内容多少。
    如果考虑存储需要平滑的增长,可以考虑LVM技术。
    除了本地磁盘系统,你还可以使用网络文件系统(NFS),NAS、SAN、AWS_EBS等等。
    如果内存和CPU都不错,瓶颈在磁盘寻道时间。那么高转速硬盘(7200转以上)或SSD硬盘会提升Gitlab的响应速度。

注意:
因为文件系统性能会影响 GitLab 的总体性能,我们不建议使用 AWS EFS (NFS云服务)作为存储.

  • CPU
    CPU需求取决与用户数和期望的负载。
    4 cores 最低配置,支持 500 users。
    8 cores 支持 1000 users。
    更多 users? 参见 reference architectures page

  • 内存
    内存需求取决与用户数和期望的负载。
    4GB RAM 最低配置,支持 500 users。
    8GB RAM 支持 1000 users。
    更多 users? 参见 reference architectures page

  • 数据库
    仅支持PostgreSQL数据库。自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 开启扩展

有些系统,还需要安装额外的包来支持扩展功能 (for example, postgresql-contrib) 。

  • GitLab Geo,Puma ,Unicorn Workers,Redis and Sidekiq,Prometheus and its exporters,GitLab Runner
    参见官方文档

  • 浏览器

GitLab 13.0 (May 2020) 已经停止了对IE11的官方支持。GitLab 13.4 (September 2020) 会移除所有支持IE11的代码。

支持如下浏览器:

Omnibus packages 安装 Gitlab

Install self-managed GitLab
官方强烈建议使用官方Linux包安装,更快安装、更易升级, 并且它包含了其他安装方式没有的特性来加强可靠性。强烈 建议最少 4GB 可用内存 运行Gitlab。

基于CentOS7 安装

1. 安装依赖项

关闭selinux
关闭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服务器配置公网地址、域名、https对外提供服务。如果需要使用自己的证书,前置负载均衡,建议手动配置。

这里使用腾讯云CVM+负载均衡CLB+证书。所以不带参数安装,参数手动配置。

[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"

执行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"
 }
  • 根据配置文件进行gitlab参数配置
[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作为克隆地址。
但是在本架构中,Gitlab仅提供http访问,https服务通过前置负载均衡提供。
那么,需要在/etc/gitlab/gitlab.rb内配置http地址,克隆地址配置为负载均衡提供的https访问地址。
克隆地址配置文件/opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml。
在/etc/gitlab/gitlab.rb初始化后,再手动配置。

手动修改克隆地址后,不能再执行 gitlab-ctl reconfigure。gitlab-ctl reconfigure会使用 /etc/gitlab/gitlab.rb覆盖所有配置。
或者执行gitlab-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命令初始化配置的时候,创建了gitlab-runsvdir.service
可以使用如下命令启动/停止服务

[root@VM_2_12_centos ~]# systemctl status gitlab-runsvdir.service
[root@VM_2_12_centos ~]# systemctl stop gitlab-runsvdir.service

查看服务状态

[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.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351