千家信息网

GitLab安装配置全过程

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,一、准备一台Linux主机我用了一台VMware虚拟机,配置如下:IP:192.168.1.1591、开SSHsystemctl enable sshd2、关闭SELINUXvi /etc/sysco
千家信息网最后更新 2025年12月02日GitLab安装配置全过程

一、准备一台Linux主机

我用了一台VMware虚拟机,配置如下:

IP:192.168.1.159

1、开SSH

systemctl enable sshd

2、关闭SELINUX

vi /etc/sysconfig/selinux

修改下边红字部分

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

# enforcing - SELinux security policy is enforced.

# permissive - SELinux prints warnings instead of enforcing.

# disabled - No SELinux policy is loaded.

SELINUX=disabled

# SELINUXTYPE= can take one of three two values:

# targeted - Targeted processes are protected,

# minimum - Modification of targeted policy. Only selected processes are protected.

# mls - Multi Level Security protection.

SELINUXTYPE=targeted

3、安装rz

yum -y install lrzsz

之后上传文件一定要用-be参数(其中-b是--binary用二进制的方式上传,-e是--escape强制escape所有控制字符),否则上传的文件不完整

rz -be

4、安装wget

yum -y install wget

5、更换yum源,用于提速yum

(1)备份yum源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

(2)下载新的CentOS-Base.repo 到/etc/yum.repos.d/

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

清理缓存

yum clean all

重新生成缓存

yum makecache

一、安装GitLab

1、安装必须的组件

yum install -y curl policycoreutils-python openssh-server

2、安装GitLab社区版包库

cd /home

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash

3、安装GitLab社区版

EXTERNAL_URL是访问的URL

EXTERNAL_URL="http://192.168.1.159" yum install -y gitlab-ce 

安装完成后:

gitlab-ctl reconfigure #使配置文件生效 但是会初始化除了gitlab.rb之外的所有文件

gitlab-ctl status #查看状态

gitlab-ctl stop #停服务

gitlab-ctl start #起服务

gitlab-ctl tail #查看日志的命令(Gitlab 默认的日志文件存放在/var/log/gitlab 目录下)

相关目录信息

.git/config #版本库特定的配置设置,可用--file修改

~/.gitconfig #用户特定的配置设置,可用--global修改

/var/opt/gitlab/git-data/repositories/root #库默认存储目录

/opt/gitlab #是gitlab的应用代码和相应的依赖程序

/var/opt/gitlab #此目录下是运行gitlab-ctl reconfigure命令编译后的应用数据和配置文件,不需要人为修改配置

/etc/gitlab #此目录下存放了以omnibus-gitlab包安装方式时的配置文件,这里的配置文件才需要管理员手动编译配置

/var/log/gitlab #此目录下存放了gitlab各个组件产生的日志

/var/opt/gitlab/backups/ #备份文件生成的目录

相关文件

/opt/gitlab/embedded/service/gitlab-rails/config #配置文件(修改clone的ip地址)

/etc/gitlab/gitlab.rb #设置相关选项进行配置(gitlab地址就在这)

/var/opt/gitlab/git-data #Git存储库数据(默认

4、运行服务(此步可不做)

gitlab-ctl start

5、登录测试

首次登录需要修改root密码

密码改成:********

账号:root

登录后的页面(这是IE浏览器,显示有问题,需换非IE浏览器访问)

二、汉化GitLab

1、检查安装版本和汉化包版本

安装版本检查

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

汉化包检查

https://gitlab.com/xhang/gitlab

2、汉化过程

如果具有相同版本的汉化标签

(1)克隆汉化版本库

yum install -y git

git clone https://gitlab.com/xhang/gitlab.git

(可以指定版本号git clone https://gitlab.com/xhang/gitlab.git -b v10.0.2-zh)

如果已经克隆过,则进行更新git fetch

(2)查看该汉化补丁的版本

cat gitlab/VERSION

(2)比较汉化标签和原标签,导出 patch 用的 diff 文件。

gitlab-ctl stop

cd /home/gitlab

git diff v11.1.4 v11.1.4-zh > ../11.1.4-zh.diff

生成11.1.4-zh.diff文件

由于官方版本比汉化包少一些文件(assets目录下所有文件)会导致打补丁时出错,所以先拷贝这些文件到官方目录

cd /home/gitlab/app

cp -r assets /opt/gitlab/embedded/service/gitlab-rails/app/

将11.1.4-zh.diff作为补丁更新到gitlab中

yum install patch -y

patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < 11.1.4-zh.diff

cd /opt/gitlab/embedded/service/gitlab-rails

git apply /home/11.1.4-zh.diff

强行拷贝过去后git apply可能会出错

用patch打补丁

出现询问时都输入y,注意上图有个失误,导致多了一个rej文件,这个文件一定要重命名掉

cd gitlab-rails/app/assets/javascripts/boards/components/

mv board_delete.js.rej board_delete.js.rej.bak

启动和检查GitLab配置

gitlab-ctl start

gitlab-ctl reconfigure

重新登录192.168.1.159

三、用LDAP接入AD

四、增加邮件功能

1、修改配置文件gitlab.rb

vi /etc/gitlab/gitlab.rb

在gitlab.rb文件中添加下面配置:

gitlab_rails['smtp_enable'] = true

gitlab_rails['smtp_address'] = "smtp.********"

gitlab_rails['smtp_port'] = 25

gitlab_rails['smtp_user_name'] = "gitlab"

gitlab_rails['smtp_password'] = "**********"

gitlab_rails['smtp_domain'] = "**********"

gitlab_rails['smtp_authentication'] = "login"

gitlab_rails['smtp_enable_starttls_auto'] = true

gitlab_rails['gitlab_email_from'] = 'gitlab@**********'

user['git_user_email'] = "gitlab@**********"

2、修改完,重新配置

gitlab-ctl reconfigure

查看日志

gitlab-ctl tail

五、修改时区

如果不修改默认时间会造成下图的现象,可能会差几个小时

1、修改配置文件gitlab.rb

vi /etc/gitlab/gitlab.rb

在gitlab.rb文件中

添加下面配置:

gitlab_rails['time_zone'] = 'Asia/Shanghai'

2、修改完,重新配置

gitlab-ctl reconfigure

查看日志

gitlab-ctl tail

六、设置密码输错锁定

1、修改配置文件gitlab.rb

vi /etc/gitlab/gitlab.rb

在gitlab.rb文件中修改下面配置:

gitlab_rails['rack_attack_git_basic_auth'] = {

'enabled' => true,

'ip_whitelist' => ["127.0.0.1"],

'maxretry' => 300,

'findtime' => 60,

'bantime' => 60

}

解释:

# Rack Attack IP banning enabled

'enabled' => true

# Whitelist requests from 127.0.0.1 for web proxies (NGINX/Apache) with incorrect headers

'ip_whitelist' => ["127.0.0.1"]

# Limit the number of Git HTTP authentication attempts per IP

'maxretry' => 300

# Reset the auth attempt counter per IP after 60 seconds

'findtime' => 60

# Ban an IP for one hour (60s) after too many auth attempts

'bantime' => 60

2、修改完,重新配置

gitlab-ctl reconfigure

查看日志

gitlab-ctl tail

七、备份

1、修改配置文件gitlab.rb

vi /etc/gitlab/gitlab.rb

在gitlab.rb文件中

修改为下面配置:

gitlab_rails['manage_backup_path'] = true

gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" //gitlab备份目录

gitlab_rails['backup_archive_permissions'] = 0644 //生成的备份文件权限

gitlab_rails['backup_keep_time'] = 7776000 //备份保留天数为3个月(即90天,这里是7776000秒)

2、修改完,重新配置

gitlab-ctl reconfigure

查看日志

gitlab-ctl tail

3、手动备份一次

gitlab-rake gitlab:backup:create


cd /var/opt/gitlab/backups目录,查看已有备份文件

4、添加每日备份的计划任务

编辑crontab

vi /etc/crontab

添加下边一行

0 4 * * * root /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1

注意:环境变量CRON=1的作用是如果没有任何错误发生时, 抑制备份脚本的所有进度输出

重启crond服务

systemctl restart crond

重启系统

shutdown -r now

七、恢复测试

GItLab只能还原到与备份文件相同的gitlab版本。

1、克隆一份正式环境的GitLab,改服务器IP为192.168.1.211

2、修改GitLab的访问IP地址

vi /etc/gitlab/gitlab.rb

在gitlab.rb文件中

修改为下面配置:

external_url 'http://192.168.1.221'

修改完,重新配置

gitlab-ctl reconfigure

3、随便删除一个项目

4、开始恢复操作

(1)将备份文件权限修改为777,不然可能恢复的时候会出现权限不够,不能解压的问题

cd /var/opt/gitlab/backups

chmod 777 1550089292_2019_02_14_11.1.4_gitlab_backup.tar

(2)执行命令停止相关数据连接服务

gitlab-ctl stop unicorn

gitlab-ctl stop sidekiq

gitlab-ctl status

(3)执行命令从备份文件中恢复Gitlab

Gitlab的恢复操作会先将当前所有的数据清空,然后再根据备份数据进行恢复

gitlab-rake gitlab:backup:restore BACKUP=备份文件编号

gitlab-rake gitlab:backup:restore BACKUP=1550089292_2019_02_14_11.1.4

输入yes

输入yes

恢复完成

(4)最后再次启动Gitlab

gitlab-ctl start

gitlab-ctl status

5、检查恢复情况

(1)check命令

gitlab-rake gitlab:check SANITIZE=true

全部ok

(2)web页面

之前删除的项目已经恢复了。20GB的数据,200个项目共计恢复用时1小时

文件 配置 备份 目录 版本 日志 数据 服务 命令 检查 补丁 生成 地址 密码 权限 标签 项目 登录 输入 相同 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络技术服务公司需要哪些资质 河北常规软件开发服务保障 网络安全的问题的主要原因 网络安全风险监测app有哪些 广州废品回收软件开发公司 网络技术产品领域内的技术开发 通达信看不了3年前数据库 盘点2021年网络安全事件 古代战争天启区是哪个服务器 郑州gis软件开发招聘 js那到前10条数据库 金山区手机软件开发 浦东新区国际软件开发供应商价位 两个全覆盖网络安全检查 银行网络安全防护厂商 机器学习数据库建模 湖南华为服务器供应商 如何判断一个软件开发公司的实力 软件开发环境隔离 数据库的需要人工管理么、 华为手机的网络安全密匙在哪 泰州rs232串口服务器 大学电脑网络安全 小小服务器管理员 网络安全知识大讲堂进校园 人寿软件开发技术部电话 联创科技 汽车互联网 怎样备份数据库文件 最终幻想14服务器人物 sql数据库连接字符串
0