千家信息网

Gitlab搭建与使用第一篇

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,Gitlab算是目前最流行的一款开源代码管理工具了,由众多组件构成,包括gitaly、postgresql、redis、unicorn、nginx等,可见其复杂性(可从gitlab官网了解相关信息)。
千家信息网最后更新 2026年11月02日Gitlab搭建与使用第一篇

Gitlab算是目前最流行的一款开源代码管理工具了,由众多组件构成,包括gitaly、postgresql、redis、unicorn、nginx等,可见其复杂性(可从gitlab官网了解相关信息)。也因此服务器的硬件配置不能太低,当前我们生产用的云主机是1台c5.2xlarge(8vcpu、16G)的实例(官方软硬件要求:https://docs.gitlab.com/ce/install/requirements.html),使用起来勉强可以。

Gitlab在CentOs7.x上安装也仅是一个rpm包,所以安装非常简单。而原来在CentOs6.x上安装Gitlab-ce-8.x时对Git的client版本还有要求(perl-Git、git版本在1.7.9.6及以上)。

我这里选用目前最新版本12.5.2的rpm包来演示,在这里吐槽一下,gitlab版本更新实在太频繁了,我完全跟不上步伐。

使用清华的下载源:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.5.2-ce.0.el7.x86_64.rpm

如果想知道在使用的gitlab版本相关特性以及bug修复,可关注gitlab的blog:https://about.gitlab.com/blog/categories/releases/

一、环境说明:

为了搭建gitlab,并实现邮件通知功能,我在gitlab服务器上同时配置了postfix+dovecot

域名:demo.com

用于测试的邮箱有:noreply@demo.com;admin@demo.com;firefly@demo.com

IP: 192.168.59.250

hosts文件内容如下:

[root@mail home]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.59.250 mail.demo.com mail demo.com
192.168.59.250 pop
192.168.59.250 gitlab.demo.com
192.168.59.250 jenkins.demo.com

主机名配置如下:
[root@mail home]# cat /etc/hostname
mail.demo.com

二、安装配置

1、开始安装
[root@mail ~]# rpm -ivh gitlab-ce-12.5.2-ce.0.el7.x86_64.rpm
使用rpm包安装完成后,会提示Gitlab尚未配置,可通过修改/etc/gitlab/gitlab.rb文件来设置external_url,然后执行命令gitlab-ctl reconfigure来启动Gitlab实例。

2、修改配置文件/etc/gitlab/gitlab.rb
[root@mail home]# cat /etc/gitlab/gitlab.rb |grep -v "^#" |grep -v "^$"
#配置一个用于外部访问url
external_url 'http://gitlab.demo.com'
#开启邮件通知功能
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'noreply@demo.com'
gitlab_rails['gitlab_email_display_name'] = 'noreply'
gitlab_rails['gitlab_email_reply_to'] = 'noreply@demo.com'
#git仓库备份路径
gitlab_rails['backup_path'] = "/data/git-data/backups"
#备份保留周期,默认是7天,过期将被删除
gitlab_rails['backup_keep_time'] = 604800
#git仓库数据默认存放路径
git_data_dirs({
"default" => {
"path" => "/data/git-data"
}
})
#smtp邮箱设置,用于发送邮件给到各个git账户
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "mail.demo.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "noreply@demo.com"
gitlab_rails['smtp_password'] = "noreply"
gitlab_rails['smtp_domain'] = "demo.com"
gitlab_rails['smtp_authentication'] = "login"
----------------------配置结束分割线----------------------

3、启动服务。完成上述配置后即可执行命令gitlab-ctl reconfigure即可完成初始化配置并启动相关服务

[root@mail ~]# gitlab-ctl reconfigure
[root@mail ~]# gitlab-ctl status
run: alertmanager: (pid 20578) 2681s; run: log: (pid 20577) 2681s
run: gitaly: (pid 20545) 2681s; run: log: (pid 20544) 2681s
run: gitlab-exporter: (pid 20569) 2681s; run: log: (pid 20568) 2681s
run: gitlab-workhorse: (pid 20551) 2681s; run: log: (pid 20550) 2681s
run: grafana: (pid 20576) 2681s; run: log: (pid 20575) 2681s
run: logrotate: (pid 20560) 2681s; run: log: (pid 20559) 2681s
run: nginx: (pid 20557) 2681s; run: log: (pid 20556) 2681s
run: node-exporter: (pid 20566) 2681s; run: log: (pid 20565) 2681s
run: postgres-exporter: (pid 20580) 2681s; run: log: (pid 20579) 2681s
run: postgresql: (pid 20549) 2681s; run: log: (pid 20543) 2681s
run: prometheus: (pid 20582) 2681s; run: log: (pid 20581) 2681s
run: redis: (pid 20584) 2681s; run: log: (pid 20583) 2681s
run: redis-exporter: (pid 20570) 2681s; run: log: (pid 20567) 2681s
run: sidekiq: (pid 20553) 2682s; run: log: (pid 20552) 2682s
run: unicorn: (pid 20562) 2682s; run: log: (pid 20561) 2682s
可以看到gitlab启动了如此多的服务。

4、通过本地浏览器访问,首先修改本地hosts(C:\Windows\System32\drivers\etc\HOSTS)文件增加如下记录:
127.0.0.1 localhost
192.168.59.250 mail.demo.com
192.168.59.250 gitlab.demo.com
192.168.59.250 jenkins.demo.com

完成了本地hosts设置,这时我们就可以通过在浏览器输入:http://gitlab.demo.com来访问了,首次登录需要更改密码,并且密码长度不能少于8位,如图1所示。

图1

登录成功后,我们进到gitlab的首页,如图2所示。

图2

三、常用设置

1、默认,gitlab是允许任意邮箱注册,并且不需要邮件确认就能完成注册并登录,为了规范,我们需要做一定限制,比如只允许公司邮箱以及个人手机邮件注册,如图3所示。

图3

完成上述设置后,我们一尝试注册一个名为firefly的账户,如图4所示。

图4

注册成功后,将会由noreply@demo.com给firefly@demo.com发送一封确认邮件,如图5和图6所示。

图5

图6

点击"Confirm your account"跳到登录页,输入开始注册的用户名以及密码完成登录,如图7和图8所示。

图7

图8

本想在一篇文章写更多的内容,奈何图太多,时间也有限,只能放到下一篇。


总结与思考,Gitlab作为公司的代码管理服务器,安全设置是很有必要的。如上述修改仓库默认存放路径,各仓库权限管理与分配、仓库的定期备份、访问日志归档(便于后期审计)、服务器的默认SSH端口修改等等将在下一篇分享。

配置 服务 邮件 如图 仓库 版本 文件 服务器 邮箱 登录 备份 密码 路径 管理 成功 主机 代码 公司 内容 功能 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 喔噻互联网科技有限公司 互联网巨头反垄断金融科技 互联网扶贫科技 互联网科技小贷 万易互联网科技有限公司 无线互联网科技 天下捷融互联网科技 互联网科技视频素材 互联网金融和金融科技 顶级互联网科技成果有哪些 互联网大会黑科技排名 湖南诚度互联网科技有限公司 贵州叶脉互联网科技有限公司所属行业 新兴科技互联网创新大赛颁奖典礼 亳州好赞互联网科技有限公司 浙南科技城互联网大厦建设工程 佛山市翊博互联网络科技有限公司 东营紫格互联网科技 北京军民互联网科技公司 互联网的科技体现在哪里 重生之互联网科技帝国 互联网核心科技是什么 顺玮阁互联网科技 新华互联网科技校企合作 互联网科技公司需要的职位 创业天下互联网科技有限公司 呼和浩特新华互联网科技学院 互联网科技的全部知识 有人说阿里系是互联网科技企业 互联网科技快速发展优美句子
0