gitlab 数据配置迁移

背景

最开始gitlab是部署在公司内网的机器上,现在需要将gitlab迁移至阿里云上。以下是迁移的详细步骤。

准备工作

首先需要做的准备有这些。原系统为CentOS 7.4。

安装相同版本的gitlab

  • 查看gitlab版本

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

    根据系统以及gitlab版本去清华大学镜像站_gitlab-ce下载特定版本的gitlab的RPM或者DEB包。

     # CentOS 6
     https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6
     https://mirrors.tuna.tsinghua.edu.cn/gitlab-ee/yum/el6
     # CentOS 7
     https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
     https://mirrors.tuna.tsinghua.edu.cn/gitlab-ee/yum/el7
     # Debian 9
     https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/debian/pool/stretch/main/g/gitlab-ce/
     https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/debian/pool/stretch/main/g/gitlab-ee/
    
  • 安装gitlab

    安装gitlab比较简单

    # 下载rpm包
    wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.5.1-ce.0.el7.x86_64.rpm
    # 安装rpm包(在下载的rpm包目录下)
    yum install -y gitlab-ce-10.5.1-ce.0.el7.x86_64.rpm
    

备份

  • 备份数据(用户信息、项目信息、代码)

    利用gitlab自带的命令gitlab-rake进行数据备份,备份位于/etc/gitlab/gitlab.rbgitlab_rails['backup_path']选项对应的目录,备份目录默认位于/var/opt/gitlab/backups

    # 备份命令
    gitlab-rake gitlab:backup:create
    # 查看备份目录
    cat /etc/gitlab/gitlab.rb|grep gitlab_rails|grep backup_path
    
  • 备份原服务器上的配置信息
    保存gitlab的域名、邮件发送信息、白名单等相关信息的配置文件 /etc/gitlab/gitlab.rb

    存储了gitlab的db secret信息的配置文件 /etc/gitlab/gitlab-secrets.json

  • 打包备份数据和配置文件

    cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab-secrets.json /var/opt/gitlab/backups
    cd /var/opt/gitlab/backups
    tar zcvf gitlab_all_backup.tar.gz ./*
    

还原gitlab配置和数据

  • 将打包的备份文件上传至新服务器
    scp gitlab_all_backup.tar.gz root@newHost:/tmp/
    # 登录新服务器
    ssh root@newHost
    cd /tmp
    tar zxvf gitlab_all_backup.tar.gz
    
  • 还原配置文件
    将配置文件移到/etc/gitlab下
    cd /tmp
    # 反斜线是忽略系统的alias,不会有覆盖文件提醒,慎重使用
    \mv gitlab.rb gitlab-secrets.json /etc/gitlab/ 
    # 重载gitlab配置
    gitlab-ctl reconfigure
    
  • 还原数据
    将之前备份的数据文件移到/var/opt/gitlab/backups下,然后恢复数据
    cd /tmp
    # 注意前面一串数字为时间戳,将你备份的文件移进去
    mv 1552743127_2019_03_16_10.5.1_gitlab_backup.tar /var/opt/gitlab/backups
    # 恢复数据,注意BACKUP=后面只要 _gitlab_backup.tar 前面的版本号,如下
    gitlab-rake gitlab:backup:restore BACKUP=1552743127_2019_03_16_10.5.1
    # 重载gitlab配置
    gitlab-ctl reconfigure
    

配置文件/etc/gitlab/gitlab.rb简介

external_url 'http://gitlab.xxx.com'                                #gitlab域名
gitlab_rails['gitlab_email_enabled'] = true                         #gitlab启用email通知
gitlab_rails['gitlab_email_from'] = 'xxx-gitlab@xxx.com'            #gitlab email来源
gitlab_rails['gitlab_email_display_name'] = 'gitlab-servce'         #email展示名称
gitlab_rails['gitlab_email_reply_to'] = 'xxx-gitlab@xxx.com'        #gitlab返回邮箱地址
gitlab_rails['gitlab_email_subject_suffix'] = ''
gitlab_rails['manage_backup_path'] = true                           #启用backup路径配置 
gitlab_rails['backup_path'] = "/NFS"                                #设置gitlab备份路径
gitlab_rails['gitlab_shell_ssh_port'] = xxxx                        #设置gitlab ssh端口
gitlab_rails['git_max_size'] = 20971520
gitlab_rails['git_timeout'] = 10
gitlab_rails['gitlab_shell_git_timeout'] = 800
gitlab_rails['rack_attack_git_basic_auth'] = {
   'enabled' => true,
   'ip_whitelist' => ["192.168.8.118"],                             #设置gitlab白名单列表
   'maxretry' => 300,
   'findtime' => 5,
   'bantime' => 60
}
gitlab_rails['initial_root_password'] = "xxxxxxx"                   #gitlab初始化root密码
gitlab_rails['smtp_enable'] = true                                  #设置gitlab 发送邮件smtp服务器信息
gitlab_rails['smtp_address'] = "smtp.xxx.xxx.com"                   #设置smtp服务器地址             
gitlab_rails['smtp_port'] = xxx                                     #设置smtp服务器端口
gitlab_rails['smtp_user_name'] = "xxx-gitlab@xxx.com"               #设置smtp用户名
gitlab_rails['smtp_password'] = "xxxxxx"                            #设置smtp密码
gitlab_rails['smtp_domain'] = "smtp.xxx.com"                        #设置smtp域名
gitlab_rails['smtp_authentication'] = "login"       
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = 'xxx-gitlab@xxx.com'
git_data_dir "/data/gitlab-data"                                    #设置gitlab数据目录


gitlab_rails['ldap_enabled'] = true                                 #设置gitlab ldap认证

gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
  main: # 'main' is the GitLab 'provider ID' of this LDAP server
    label: 'LDAP'
    host: 'xx.xx.xx.xx'                                             #设置ldap服务器地址
    port: xxx                                                       #设置ldap服务器端口
    uid: 'cn'
    method: 'plain' # "tls" or "ssl" or "plain"
    bind_dn: 'cn=xxx,dc=xxx,dc=com'                                 #ldap bind dn
    password: 'xxx'                                                 #ldap bind dn用户对应的密码
    active_directory: true
    allow_username_or_email_login: true                             #允许用户名和邮箱登录
    block_auto_created_users: false
    base: 'dc=xxx,dc=com'                                           #ldap base dn信息,即搜索域
    attributes:
      username: ['cn', 'uid']
      email:    ['mail', 'email']
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容