CentOS 7下安装指定版本的GitLab,和数据备份与恢复

此处以GitLab10.0.0为例

安装步骤

一、添加镜像地址

添加镜像地址的目的是为了提高国内用户软件下载的速度,编辑(新建)文件gitlab-ce.repo,指令:

vi /etc/yum.repos.d/gitlab-ce.repo

输入:

[gitlab-ce]
name=gitlab-ce
# 清华大学的镜像源
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key

保存修改:按下ESC键,再输入:wq,然后回车

二、安装依赖

依次输入以下指令

# 安装和配置openssh
sudo yum install curl policycoreutils-python openssh-server openssh-clients
sudo systemctl enable sshd
sudo systemctl start sshd
# 安装和配置邮件服务
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix

注意 如果无法启动postfix,可以尝试以下操作:
输入以下指令编辑main.cf文件:

vim /etc/postfix/main.cf

找到如下内容并进行如下修改:

inet_protocols = ipv4
inet_interfaces = all

三、安装防火墙[可选操作]

需要开启防火墙的,执行以下操作

# 安装和配置防火墙
sudo yum install firewalld
sudo systemctl start firewalld
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload

四、下载安装GitLab

1.安装最新版

执行以下指令安装最新版的GitLab

yum install gitlab-ce
2.安装指定版

GitLab10.0.0下载:

curl -LJO https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm

安装:

rpm -i gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm

五、配置GitLab

运行以下指令,类似于初始化操作:

sudo gitlab-ctl reconfigure

[可选操作] 配置防火墙,放行端口(8091为例):

sudo firewall-cmd --permanent --zone=public --add-port=8091/tcp
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload

[可选操作] 关闭防火墙

# 查看防火墙状态
firewall-cmd --state

# 关闭防火墙
systemctl stop firewalld.service

# 关闭防火墙自启动
systemctl disable firewalld.service 

vim的搜索指令提示:
打开文件后,在命令模式,就是按下ESC后的模式,输入以下内容,点击进行搜索,按下N搜索下一个,按下Shift+N搜索前一个:

#“/”后面添加需要搜索的内容
/external_url

更改GitLab端口,编辑文件gitlab.rb

vim /etc/gitlab/gitlab.rb

修改以下内容(IP以 47.110.230.147 为例):

external_url 'http://47.110.230.147:8091'

nginx['listen_port'] = 8091

nginx['listen_https'] = false

更改nigx端口,编辑文件gitlab-http.conf

vim /var/opt/gitlab/nginx/conf/gitlab-http.conf

查找如下内容并修改:

server {
listen *:8091;
server_name 47.110.230.147;
...
if ($http_host = "") {
   set $http_host_with_default "47.110.230.147:8091";
}
}

保存修改,执行以下指令:

gitlab-ctl reconfigure

六、启动并访问

启动GitLab:

gitlab-ctl restart

访问GitLab,访问地址:http://47.110.230.147:8091,默认用户为 root,首次打开网站会要求输入root账户的密码。

备份数据

使用如下指令进行全部备份:

gitlab-rake gitlab:backup:create

备份文件存放于

/var/opt/gitlab/backups

文件名类似于

1551348773_2019_02_28_10.0.0_gitlab_backup.tar

其中1551348773_2019_02_28为备份日期,10.0.0为GitLab的版本。

数据恢复

**注意 **新服务器上的Gitlab的版本必须与创建备份时的Gitlab版本号相同。如新服务器安装的是最新的10.0.0版本的Gitlab,那么迁移之前, 最好将老服务器的Gitlab 升级为10.0.0再进行备份。

一、准备备份文件

将之前备份的文件拷贝至

/var/opt/gitlab/backups

二、停止相关数据连接

执行命令停止相关数据连接服务:

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

三、从备份文件中恢复

执行以下指令进行恢复GitLab:

# gitlab-rake gitlab:backup:restore BACKUP=备份文件编号(编号就是备份文件名前面的数字)
gitlab-rake gitlab:backup:restore BACKUP=1551348773_2019_02_28_10.0.0

指令执行过程中有两次交互,都输入yes即可。

四、启动GitLab

执行指令再次启动GitLab:

sudo gitlab-ctl start

常用指令

关闭GitLab:

gitlab-ctl stop

启动GitLab:

gitlab-ctl start

重启GitLab:

gitlab-ctl restart

可能出现的异常

一、502异常

502异常可能是内存不足造成的,也可能是端口被占用造成的,针对后者,请做如下处理:
输入指令,修改GitLab配置:

vim /etc/gitlab/gitlab.rb

再次输入以下指令进行查找:

# unicorn是ruby的http server
# 可以通过http://localhost:8080端口访问,nginx只是unicorn的反向代理
# vim的查找支持正规则,所以`[`和`]`需要进行转义
/unicorn\['port'\]

将默认的 8080 端口改为其他端口,如 9090
输入 ESC,再输入 :wq,最后回车进行保存退出

输入以下命令进行重启配置:

gitlab-ctl reconfigure

再输入以下指令进行GitLab的重启:

gitlab-ctl restart

你可能感兴趣的:(软件安装)