一、准备一台Linux主机

h

我用了一台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小时

3 thoughts on “Gitlab 安装配置优化备份记录

  1. Hey there! Do you know if they make any plugins to help with Search Engine Optimization? I’m trying to get my blog
    to rank for some targeted keywords but I’m not seeing very good gains.

    If you know of any please share. Thanks!

发表评论

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据