gitlab安装以及数据备份恢复

查看版本
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
centos 7.6

1.添加镜像地址

#版本13.2.4vi /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

3.开始安装

#安装最新版本
yum install -y gitlab-ce#指定版本安装
yum install -y gitlab-ce-13.2.4

4.修改配置文件

vim /etc/gitlab/gitlab.rb
#修改url  改成自己需要的域名
external_url "http://gitlab.naxions.com"在此配置文件中可以配置backup数据备份路径,数据的存放路径,已经gitlab-mail的配置# mail的示例,根据自己公司的邮箱配置
### Email Settings
# gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'gitlab@naxions.com'
# gitlab_rails['gitlab_email_from'] = 'example@example.com'
# gitlab_rails['gitlab_email_display_name'] = 'Example'
# gitlab_rails['gitlab_email_reply_to'] = 'noreply@example.com'
# gitlab_rails['gitlab_email_subject_suffix'] = ''
# gitlab_rails['gitlab_email_smime_enabled'] = false
# gitlab_rails['gitlab_email_smime_key_file'] = '/etc/gitlab/ssl/gitlab_smime.key'
# gitlab_rails['gitlab_email_smime_cert_file'] = '/etc/gitlab/ssl/gitlab_smime.crt'
# gitlab_rails['gitlab_email_smime_ca_certs_file'] = '/etc/gitlab/ssl/gitlab_smime_cas.crt'gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "gitlab@naxions.com"
gitlab_rails['smtp_password'] = "sCJiYkQALH3uKFKK"
gitlab_rails['smtp_domain'] = "naxions.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true

5.保存,执行加载配置命令

gitlab-ctl reconfigure   #加载配置gitlab-ctl restart #启动禁止 Gitlab 开机自启动:systemctl disable gitlab-runsvdir.service启用 Gitlab 开机自启动:systemctl enable gitlab-runsvdir.service

gitlab数据备份恢复(迁移也是同样的手法)

1.数据迁移必要条件

新服务器上安装的gitlab必须与旧服务器上版本一致,版本不一致在新服务器恢复数据时将发生错误

# 查看gitlab版本的命令为
gitlab-rake gitlab:env:info

2.数据迁移步骤

(1)旧服务器上备份数据

注意:备份产生很大的数据,需时刻关注磁盘空间是否够用

#备份命令  时间很久需要耐心等待
gitlab-rake gitlab:backup:create RAILS_ENV=production

备份后的文件一般是位于/var/opt/gitlab/backups下, 自动生成文件名如1662147741_2022_09_03_13.2.4_gitlab_backup.tar,其中1662147741为备份的时间点。自动生成文件名可能也为1662147741_2022_09_03_13.2.4_gitlab_backup.tar,其中2022_09_03为备份的日期,13.2.4为gitlab的版本号

(2)将生成的tar备份文件拷贝到新服务器上相应的目录下

可以利用scp进行直接拷贝,新服务器上目录一般是/var/opt/gitlab/backups

(3) 新服务器上恢复数据

#恢复数据前,备份文件必须有运行权限,需给拷贝过来的文件权限,负责会报错
chmod 755 1662147741_2022_09_03_13.2.4_gitlab_backup.tar#恢复数据的命令为  删除后面的gitlab_backup.tar  恢复时间很久,需要耐心等待
gitlab-rake gitlab:backup:restore RAILS_ENV=production BACKUP=1662147741_2022_09_03_13.2.4

注意:BACKUP后面的时间点必须与原服务器备份后文件名中的时间点一致

(4)恢复数据过程中两步确认均选择yes

#第一个yes
Before restoring the database, we will remove all existing
tables to avoid future upgrade problems. Be aware that if you have
custom tables in the GitLab database these tables and all data will be
removed.Do you want to continue (yes/no)? yes#第二个yes
This task will now rebuild the authorized_keys file.
You will lose any data stored in the authorized_keys file.
Do you want to continue (yes/no)? yes

(5)重启服务 gitlab-ctl restart

迁移后可能存在的问题

1.删除project失败

错误信息:500 Whoops,something went wrong on our end.
解决方案:

1.#进入db控制台
[root@VM_1_17_centos ~]# gitlab-rails dbconsole
psql (10.7)
Type "help" for help.gitlabhq_production=> 2.#Reset CI/CD variables
Check the ci_group_variables and ci_variables tables:
Those are the variables that you need to delete.
----------------------------------------------------
执行:
gitlabhq_production=> SELECT * FROM public."ci_group_variables";
id | key | value | encrypted_value | encrypted_value_salt | encrypted_value_iv | group_id | protected | created_at | updated_at | masked | variable_type
----+-----+-------+-----------------+----------------------+--------------------+----------+-----------+------------+------------+--------+---------------
(0 rows)gitlabhq_production=> SELECT * FROM public."ci_variables";
id | key | value | encrypted_value | encrypted_value_salt | encrypted_value_iv | project_id | protected | environment_scope | masked | variable_type
----+-----+-------+-----------------+----------------------+--------------------+------------+-----------+-------------------+--------+---------------
(0 rows)
3.#Reset Runner registration tokens
Clear all the tokens for projects, groups, and the whole instance:
执行:
gitlabhq_production=> UPDATE projects SET runners_token = null, runners_token_encrypted = null;
UPDATE 16
gitlabhq_production=> UPDATE namespaces SET runners_token = null, runners_token_encrypted = null;
UPDATE 27
gitlabhq_production=> UPDATE application_settings SET runners_registration_token_encrypted = null;
UPDATE 1
gitlabhq_production=> UPDATE ci_runners SET token = null, token_encrypted = null;
UPDATE 04.#退出DB控制台
gitlabhq_production=> exit5.#重启服务
gitlab-ctl restart

2.Web-IDE打不开

错误信息:Error while loading project data. please try again.
错误原因:api/v4/projects/user{user}%2Fuser{project} 500 (Internal Server Error)
解决方案:同上。

3.点击admin area的任何设定时报错

错误信息:500 Whoops,something went wrong on our end.
解决方案:同上。

gitlab安装--数据备份迁移恢复相关推荐

  1. Gitlab调优-备份及恢复

    调优 gitlab是个内存老虎, 在使用32G无力内存的服务器中, 在默认配置下一直吃满内存, 甚至在使用过程中经常出现各种5xx错误, 然后一看剩余内存就仅剩几百兆...... 然后经过摸索, 终于 ...

  2. 宝塔如何备份网站_宝塔面板教程:网站数据备份和恢复操作方法

    宝塔面板对于老站长而言操作还是比较简单的,但是对于普通用户来说,操作服务器并不简单,关注了一下宝塔面板相关问题,发现有不少用户对于宝塔面板网站数据恢复方法不会操作,别担心,小编整理了一下可以操作方法, ...

  3. gitlab旧服务器备份迁移新服务器

    目录 旧服务器准备工作 新服务器准备工作 # gitlab旧服务器备份迁移新服务器 旧服务器准备工作 1. 查看gitlab版本号(保证两个服务器的gitlab版本一致)     ```     ca ...

  4. Oracle数据备份和恢复

    文章目录 一.备份与恢复的概念 1.什么是备份 2.备份的方法 3.备份的策略 4.什么是恢复 5.恢复分类 二.逻辑备份和恢复 1.exp命令 2.imp命令 3.数据库实例导出和导入 4.用户的导 ...

  5. oracle数据备份 恢复,Oracle数据备份和恢复

    Oracle数据库的备份和恢复有很多种方法,是一个很大的话题,足可以写一本书,但是,本文只介绍采用exp和imp进行数据备份和恢复,这也是程序员最常用的方法. 本文涉及的备份与恢复的其它概念都是狭义的 ...

  6. InfluxDB数据备份和恢复方法,支持本地和远程备份

    本文属于< InfluxDB系列教程>文章系列,该系列共包括以下 17 部分: InfluxDB学习之InfluxDB的基本概念 InfluxDB学习之InfluxDB的基本操作 Infl ...

  7. Doris(五)-监控、报警、优化、数据备份及恢复

    目录 1.监控和报警 1.1.Prometheus 1.2.Grafana 2.优化 2.1.查看 QueryProfile 2.1.1.使用方式 2.1.2.参数说明 2.1.3.调试方式 2.2. ...

  8. Salesforce 数据备份和恢复小知识

    数据备份的类型 在Salesforce中可以使用多种API进行数据备份,它们是: REST API SOAP API Buik API Metadata API 数据备份有三种选择: 完全备份(Ful ...

  9. mysql TMM_mysql使用命令导出导入数据(数据备份、恢复)

    1.使用mysql进行数据备份.恢复我们使用最多是的Navicat for MySQL客户端工具: 数据备份: DataBase(选中数据) – > Dump SQL File(转储SQL文件) ...

最新文章

  1. python使用matplotlib可视化3D柱状图(3D histogram、三维柱状图、包含三个坐标轴x、y、z)、设置zdir参数为z、改变3d图观察的角度
  2. IdentityHash as hashMap
  3. DotNetTextBoxV3.0在线编辑器控件Ver3.4.1 Open Source开源版(附商业试用版下载)
  4. 事务的状态(状态模式)
  5. l4 l7 代理_什么是四层(L4 proxy)和七层负载均衡(L7 proxy)?区别是什么? 翻译自Nginx官网...
  6. PHP uniqid()函数可用于生成不重复的唯一标识符,该函数基于微秒级当前时间戳。在高并发或者间隔时长极短(如循环代码)的情况下,会出现大量重复数据。即使使用了第二个参数,也会重复,最好的方案是结
  7. wpf开源ui引用步骤_如何通过7个步骤开源您的学术作品
  8. 001.从零到1之Linux高性能服务器开发
  9. Android RecyclerViewSwipeDismiss:水平、垂直方向的拖曳删除item
  10. Java之品优购课程讲义_day08(7)
  11. ScriptManager的EnablePageMethods
  12. Java变量命名规范
  13. 在COMSOL中固体力学模块中添加 力矩 扭矩
  14. “学霸系统”课堂展示
  15. 数值分析实验(四)之方程求根的数值方法
  16. 小学计算机应用能力培训的计划,小学老师信息技术应用能力提升培训个人计划...
  17. Pipline 中的Hazard, Forwarding, Stall, Flush和其他
  18. java中各种O的含义(PO,VO,TO,QO,BO,DAO,DTO,POJO)
  19. quartz mysql 表 集群配置_Spring整合实战丨Quartz 集群配置
  20. Python学习 day03

热门文章

  1. Java面试总结(2021优化版)发布1024程序员节
  2. Remove Assignments to Parameters 移除对参数的赋值
  3. 【数据结构】kd树实现,范围查询,邻近查询笔记【1】2d树的构造
  4. 【搜集+亲测】无法注册Flash Player的Activex控件最终解决方法(亲测,WIN7 64位系统)
  5. CentOS 8 通过二进制安装 MySQL
  6. 服务器最高安全防御策略选择与差异
  7. 马克思主义哲学历史唯物主义
  8. Activiti - 新一代的开源 BPM 引擎
  9. eclipse 更换国内镜像
  10. 数据结构:10大经典排序