GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用。

1、下载 rpm 包

cd /usr/local/src

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm

2、本地安装

# 本地安装
yum localinstall -y gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm


# 出现这个画面,安装成功

*. *.
*** ***
***** *****
.****** *******
******** ********
,,,,,,,,,***********,,,,,,,,,
,,,,,,,,,,,*********,,,,,,,,,,,
.,,,,,,,,,,,*******,,,,,,,,,,,,
,,,,,,,,,*****,,,,,,,,,.
,,,,,,,****,,,,,,
.,,,***,,,,
,*,.

_______ __ __ __
/ ____(_) /_/ / ____ _/ /_
/ / __/ / __/ / / __ `/ __ \
/ /_/ / / /_/ /___/ /_/ / /_/ /
\____/_/\__/_____/\__,_/_.___/

……………………

3、配置文件

vim /etc/gitlab/gitlab.rb

# 修改服务器的地址和端口号
external_url 'http://192.168.1.71:9091'


# 由于默认gitlab使用80端口,所以,我们需要修改gitlab的默认端口

nginx['listen_port'] = 9091

unicorn['port'] = 9092

4、汉化

# 查看版本号
rpm -qa gitlab-ce

# 版本号 10.8.4
gitlab-ce-10.8.4-ce.0.el7.x86_64

# 下载汉化包
git clone https://gitlab.com/xhang/gitlab.git -b v10.8.4-zh

# 直接覆盖!
\cp -rf gitlab/* /opt/gitlab/embedded/service/gitlab-rails/

5、启动服务

# 让配置生效
gitlab-ctl reconfigure


# 启动
gitlab-ctl start

# 开机启动
systemctl enable gitlab-runsvdir.service



# 其它操作
gitlab-ctl stop # 停止所有 gitlab 组件;
gitlab-ctl restart # 重启所有 gitlab 组件;
gitlab-ctl status # 查看服务状态;
gitlab-ctl tail # 查看日志;

6、登陆

http://192.168.1.71:9091   首次登陆输入密码,登陆账号 root

7、配置邮箱

vim /etc/gitlab/gitlab.rb

# 添加
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "576530483@qq.com"
gitlab_rails['smtp_password'] = "swxxtkh*****" // 授权码
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = '576530483@qq.com'


# 命令行测试
gitlab-rails console

# 发送成功后,在邮箱查收
Notify.test_email('mshxuyi@163.com', '邮件标题', '邮件正文').deliver_now

8、Gitlab 的目录结构

/opt/gitlab/                   主目录
/etc/gitlab/                   放置配置文件
/var/opt/gitlab/             各个组件
/var/log/gitlab/             放置日志文件

gitlab 相关组件
nginx:web服务器

postgresql:数据库

redis:缓存,负责分发任务

unicorn:Gitlab 自身的 Web 服务器,包含了 Gitlab 主进程,负责处理快速/一般任务,与 Redis 一起工作通过检查存储在 Redis 中的用户会话来检查权限为 Sidekiq 制作任务从仓库(warehouse)取东西或在那里移动东西

sidekiq:后台任务,主要负责发送电子邮件。任务需要来自 Redis

logrotate: