• gitlab迁移


    1、背景:

    操作系统:CentOS Linux release 7.5.1804 (Core)
    gitlab版本:9.2.5
    使用rpm包地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-9.2.5-ce.0.el7.x86_64.rpm
    备注:需要保证迁移的两台服务器gitlab版本一致。请先关闭selinux、firewalld防火墙。

    2、新服务器下载安装gitlab服务:

    wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-9.2.5-ce.0.el7.x86_64.rpm
    
    yum localinstall gitlab-ce-9.2.5-ce.0.el7.x86_64.rpm

    3、备份原有服务器上文件信息:

    1、/etc/gitlab/gitlab.rb:该文件配置了gitlab的域名、邮件发送信息、白名单等相关信息。
    2、/etc/gitlab/gitlab-secrets.json:该文件存储了gitlab的db secret信息。

    将原有服务器上的以上两个文件复制到新服务器上对应目录下。

    4、备份原有服务器上gitlab数据信息:

    使用以下命令进行备份。
    /usr/bin/gitlab-rake gitlab:backup:create 默认备份完成的文件存放目录为:/var/opt/gitlab/backups。若该目录下不存在,则需要查看/etc/gitlab/gitlab.rb配置中对应的gitlab_rails['backup_path']选项所指定的目录。

    5、将原有服务器上的gitlab配置文件、备份数据scp到新服务器的对应目录下:

    复制代码
    #scp gitlab仓库备份数据
    scp  /NFS/1533614595_2018_08_07_9.2.5_gitlab_backup.tar 
    
    
    #scp gitlab的配置文件
    scp /etc/gitlab/gitlab.rb xx.xx.xx.xx:/etc/gitlab/gitlab.rb
    scp /etc/gitlab/gitlab-secrets.json xx.xx.xx.xx:/etc/gitlab/gitlab-secrets.json
    复制代码

    6、在新服务器安装依赖,同时启动对应服务:

    yum install -y curl policycoreutils-python openssh-server postfix
    systemctl enable postfix
    systemctl start postfix

    7、在新服务器重新进行gitlab配置,同时进行数据恢复:

    复制代码
    gitlab-ctl reconfigure
    gitlab-rake gitlab:backup:restore BACKUP=1533614595_2018_08_07_9.2.5
    其中1533614595_2018_08_07_9.2.5对应的为gitlab备份tar包的版本号。

    保守起见,先进行gitlab-ctl reconfigure,然后启动服务。
    gitlab-ctl start
    复制代码

    8、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']
    EOS
    复制代码

     原文地址:https://www.cnblogs.com/crysmile/p/9505527.html

  • 相关阅读:
    常见的web漏洞
    WEB前端性能优化常见方法
    前端多终端浏览器兼容
    vue中computer与watch区别
    Vue父子组件生命周期执行顺序
    Git配置文件的妙用
    Git的基本概念和操作
    对AUC计算公式和几何意义的理解(详细版)
    如何看文献
    Python函数 range()和arange()的区分
  • 原文地址:https://www.cnblogs.com/hushaojie/p/14234848.html
Copyright © 2020-2023  润新知