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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM