gitlab

安装 GitLab Community Edition (CE) 社区版

GitLab 是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的 Git 项目仓库,可通过 Web 界面进行访问公开的或者私人项目.
Gitlab 中文网:https://www.gitlab.com.cn/

安装配置依赖项

如想使用 Postfix 来发送邮件,在安装期间请选择 ‘Internet Site’. 您也可以用 sendmai 或者 配置 SMTP 服务并使用 SMTP 发送邮件.

在 Centos 6 和 7 系统上, 下面的命令将在系统防火墙里面开放 HTTP 和 SSH 端口.

1
2
3
4
5
6
7
8
9
10
11
12
13
# 安装依赖包
sudo yum install curl policycoreutils openssh-server openssh-clients
sudo systemctl enable sshd
sudo systemctl start sshd

# 安装 postfix 邮件服务
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
systemctl status postfix.service # 查看状态

sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld

使用清华大学 TUNA 镜像源

镜像使用帮助
RHEL/CentOS 用户
新建 /etc/yum.repos.d/gitlab-ce.repo,内容为

1
2
3
4
5
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1

再执行

1
2
3
4
5
6
7
8
9
# 更新本地 YUM 缓存
sudo yum makecache

# 安装 GitLab 社区版
sudo yum install gitlab-ce #(自动安装最新版)
sudo yum install gitlab-ce-8.8.4-ce.0.el6 #(安装指定版本)

# 初始化 GitLab
sudo gitlab-ctl reconfigure

更改配置

Nginx配置反向代理访问 Gitlab

1
2
3
4
5
6
7
8
9
10
11
12
13
14
vi /etc/gitlab/gitlab.rb
# 找到 external_url 'http://******' #(修改成你的地址)
# 设置 gitlab nginx 端口监听修改
nginx['listen_port'] = 端口号


vi /etc/hosts,添加 host 映射
127.0.0.1 git.home.com

每次修改 /etc/gitlab/gitlab.rb,都要运行以下命令,让配置生效
sudo gitlab-ctl reconfigure
systemctl restart nginx

配置本机的 host,如:192.168.113.59 git.home.com。

防火墙配置

1
2
3
firewall-cmd --zone=public --add-port=8081/tcp --permanent

firewall-cmd --reload

最后,在浏览器打开网址 http://git.home.com,修改密码

Gitlab 修改备份文件默认目录

修改 /etc/gitlab/gitlab.rb 来修改默认存放备份文件的目录:

1
2
3
4
5
6
7
# 设置备份周期为7天 - 604800秒
gitlab_rails['backup_keep_time'] = 604800
# 备份目录
gitlab_rails['backup_path'] = '/mnt/backups'

# 重载配置文件
sudo gitlab-ctl reconfigure

Linux 服务器上使用 CronTab 定时执行

1
crontab -e

之后就会打开一个文件,并且是非编辑状态,则是 vi 的编辑界面,通过敲键盘上的 i,进入编辑模式,就可以编辑内容。这个文件中的每一行就是一个定时任务,我们新建一行,就是新建一条定时任务(当然是指这一行内按照一定的格式进行书写)。

时间部分由 5 个时间参数组成,分别是:

1
分 时 日 月 周

第 1 列表示分钟 1~59 每分钟用 或者 /1表示,/n 表示每 n 分钟,例如 /8 就是每 8 分钟的意思,下面也是类推
第 2 列表示小时 1~23(0 表示 0 点)
第 3 列表示日期 1~31
第 4 列表示月份 1~12
第 5 列标识号星期 0~6(0 表示星期天)

备份

1
2
0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create

恢复数据文件

首先进入备份 gitlab 的目录,这个目录是配置文件中的 gitlab_rails['backup_path'] ,默认为 /var/opt/gitlab/backups

1
2
3
4
5
6
7
8
9
10
11
12
# 停止连接数据库的进程,保证数据库没有新的连接,不会有写数据情况
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq

# 恢复 *********** 这个备份文件,将覆盖 GitLab 数据库!*********** 为备份文件的时间戳
sudo gitlab-rake gitlab:backup:restore BACKUP=***********

# 启动 GitLab
sudo gitlab-ctl start

# 检查 GitLab
sudo gitlab-rake gitlab:check SANITIZE=true

设置 smtp 发送邮件服务

https://docs.gitlab.com.cn/omnibus/settings/smtp.html
通过修改 /etc/gitlab/gitlab.rb 来设置邮件功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 通过SMTP来发送邮件
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 465
# 邮箱账号
gitlab_rails['smtp_user_name'] = "xxuser@163.com"
# 邮箱密码
gitlab_rails['smtp_password'] = "xxpassword"------->注意这里填的是开启smtp的授权码,不是邮箱登录密码
# 邮箱域:这里填写163.com就好
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = :login
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
##修改gitlab配置的发信人
# 第一行配置一定要和163邮箱的账户名一样否则可能发送失败
gitlab_rails['gitlab_email_from'] = "xxuser@163.com"
gitlab_rails['gitlab_email_reply_to'] = 'xxuser@163.com'
user["git_user_email"] = "xxuser@163.com"
1
2
# 重载配置文件
sudo gitlab-ctl reconfigure

测试邮件配置是否成功
执行 gitlab-rails console 进入控制台。 然后在控制台提示符后输入下面的命令 发送一封测试邮件:

1
Notify.test_email('收件人邮箱', '邮件标题', '邮件正文').deliver_now

运维

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 启动所有 gitlab 组件:
sudo gitlab-ctl start

# 停止所有 gitlab 组件:
sudo gitlab-ctl stop

# 重启所有 gitlab 组件:
sudo gitlab-ctl restart

# 查看服务状态
sudo gitlab-ctl status

# 启动服务
sudo gitlab-ctl reconfigure

# 修改默认的配置文件
sudo vim /etc/gitlab/gitlab.rb

# 查看版本
sudo cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

# echo "vm.overcommit_memory=1" >> /etc/sysctl.conf
# sysctl -p
# echo never > /sys/kernel/mm/transparent_hugepage/enabled

# 检查gitlab
gitlab-rake gitlab:check SANITIZE=true --trace

# 查看日志
sudo gitlab-ctl tail

学习参考

gitlab
Centos 6 搭建安装 Gitlab

如果对您有用,请博主喝杯咖啡!

热评文章