gitlab 迁移-安装-还原

一、备份原有Gitlab

1、备份清单

  • 配置文件

备份命令备份不会备份gitlab.rb,gitlab-secrets.json文件,需要单独备份

配置文件主要有:

/etc/gitlab/gitlab.rb

/etc/gitlab/gitlab-secrets.json

或备份整个/etc/gitlab目录也是可以的

  • 数据文件:

当前gitlab中所有工程项目文件。

2、备份执行

  • 创建备份

    [root@localhost ~]# gitlab-backup create
    #或者使用
    [root@localhost ~]# gitlab-rake gitlab:backup:create
    2023-03-15 23:01:47 -0400 -- Dumping database ... 
    Dumping PostgreSQL database gitlabhq_production ... [DONE]
    2023-03-15 23:01:51 -0400 -- done
    2023-03-15 23:01:51 -0400 -- Dumping repositories ..
    ...
    Creating backup archive: 1678935707_2023_03_15_14.9.5_gitlab_backup.tar ... done
    Uploading backup archive to remote storage  ... skipped
    Deleting tmp directories ... done
    done
    done
    done
    done
    done
    done
    done
    done
    done
    Deleting old backups ... skipping
    Warning: Your gitlab.rb and gitlab-secrets.json files contain sensitive data 
    and are not included in this backup. You will need these files to restore a backup.
    Please back them up manually.
    Backup task   is done.
    
    
  • 查看备份:备份文件的格式为:

[root@localhost ~]# ll /var/opt/gitlab/backups/
总用量 360
-rw-------. 1 git git 368640 315 23:01 1678935707_2023_03_15_14.9.5_gitlab_backup.tar

二、卸载删除原有Gitlab

1、停止Gitlab

gitlab-ctl stop

2、卸载Gitlab

rpm -e gitlab-ce

3、查看Gitlab进程

ps aux | grep gitlab

4、杀死进程

kill -9 18777 #(18777 是第一个进程的pid号,根据显示情况输入)
# 有时候kill掉后,又出新的进程,可以使用
systemctl stop gitlab-runsvdir
# 然后查看进程后,再kill 第一个进程pid号
ps -ef | grep gitlab
#杀掉后,在ps aux | grep gitlab确认一遍,还有没有gitlab的进程
#如果还有进程请用以下命令杀死所有进程:
ps -ef | grep gitlab | xargs kill -s 9

5、删除所有包含Gitlab文件

find / -name gitlab | xargs rm -rf

删除的过程中有时候遇到权限不够的情况,可以按如下处理:

$ find / -name gitlab
find: ‘/run/user/1000/gvfs’: 权限不够
$ rm -rf /run/user/1000/gvfs
rm: 无法删除"/run/user/1000/gvfs": 是一个目录
$ umount -rf /run/user/1000/gvfs
rm -rf /run/user/1000/gvfs
$ find / -name gitlab|xargs rm -rf

三、安装Gitlab

1、添加镜像地址

添加镜像地址的目的是为了提高国内用户软件下载的速度,编辑(新建)文件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

2、安装依赖

依次输入以下指令

# 安装和配置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

3、安装防火墙

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

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

4、下载安装Gitlab

  • 安装最新版

    yum install gitlab-ce
    
  • 安装指定版:GitLab10.0.0下载:【如果要还原,一定要安装与备份的Gitlab版本一致的Gitlab】

    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
    

5、配置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

6、启动并访问

启动GitLab:

gitlab-ctl restart

四、还原备份

1、设置备份路径

根据/etc/gitlab/gitlab.rb 配置文件中backups配置的路径,将备份文件放在相应的目录下,以备下一步骤进行还原,找到相应文件。

原有备份过程中,/etc/gitlab整个文件夹进行备份,在还原之前需要将之前备份的当前文件夹进行手动还原后执行,还原命令。

2、还原备份

进行

gitlab-rake gitlab:backup:restore BACKUP=/var/opt/gitlab/backups/xxxx_yyyy_MM_dd_version

还原后可直接通过页面人工确认是否成功,数据是否有遗漏。如果还原过程有错误,可执行以下命令检验

gitlab-rake gitlab:check SANITIZE=true

相关推荐

  1. gitlab 迁移-安装-还原

    2023-12-06 05:56:06       33 阅读
  2. gitlab 迁移-安装-还原

    2023-12-06 05:56:06       28 阅读
  3. 数据库的迁移,备份,还原

    2023-12-06 05:56:06       19 阅读
  4. gitlab服务器迁移

    2023-12-06 05:56:06       30 阅读
  5. gitlab仓库迁移

    2023-12-06 05:56:06       16 阅读
  6. gitlab数据代码迁移合并

    2023-12-06 05:56:06       19 阅读
  7. docker容器gitlab数据迁移

    2023-12-06 05:56:06       20 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-06 05:56:06       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-06 05:56:06       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-06 05:56:06       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-06 05:56:06       18 阅读

热门阅读

  1. gitlab 迁移-安装-还原

    2023-12-06 05:56:06       33 阅读
  2. 驱动模块--内核模块

    2023-12-06 05:56:06       43 阅读
  3. UI界面程序鼠标右键弹出菜单的一些事

    2023-12-06 05:56:06       40 阅读
  4. 学习TypeScrip3(接口和对象类型)

    2023-12-06 05:56:06       39 阅读
  5. vue自定义指令配置小程序按钮权限

    2023-12-06 05:56:06       36 阅读
  6. 第八章 List、Set、数据结构、Collections

    2023-12-06 05:56:06       32 阅读
  7. cookie,session、中间件、csrf认证相关【补充】

    2023-12-06 05:56:06       32 阅读
  8. 【ListView】

    2023-12-06 05:56:06       39 阅读