gitlab 國內鏡像安裝


一、Gitlab 安裝

1. 環境准備

本教程主要以 CentOS 7為主,其他系統請查看官方文檔對比。

1. 安裝和打開 http 和 ssh 的權限
sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd

sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld

  

 
2. 安裝郵件服務 postfix
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix

  

使用其他郵件服務,可以根據官方文檔自行修改:
https://docs.gitlab.com/omnibus/settings/smtp.html

2. 鏡像切換

Gitlab 國外鏡像速度一向感人,而且是不是的還抽風,所以在國內搭建 Gitlab 使用的時候,還是切換成牆內鏡像比較放心。目前官方支持的國內鏡像是清華大學的鏡像站,地址:https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/

1. 新建鏡像 repo

新建 /etc/yum.repos.d/gitlab-ce.repo,內容為:

[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1

  

2. 執行命令下載
sudo yum makecache
sudo yum install gitlab-ce

  

3. 配置使用

安裝完成之后,可以在/etc/gitblab/gitlab.rb中按照需求修改配置,
主要需要修改external_url,改成自己使用的 url 地址。
執行命令配置生效:

gitlab-ctl reconfigure

  

如果想使用已有的 nginx,或者相對 gitlab 內置 nginx 進行高級配置的話,可以參考官方文檔:
https://docs.gitlab.com/omnibus/settings/nginx.html
例如,修改監聽端口,增加 ssl 配置,設置 header:

nginx['listen_port'] = 8081
# For GitLab
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.example.com.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.example.com.key"
# proxy set header
nginx['proxy_set_headers'] = {
  "X-Forwarded-Proto" => "http",
  "CUSTOM_HEADER" => "VALUE"
 }

  

需要注意的是,修改配置之后,都需要執行gitlab-ctl reconfigure命令,使配置生效。

二、Gitlab 備份

Gitlab 成功運行起來之后,最終的事情就是定期的備份,遇到問題后的還原。

1. 備份配置

默認 Gitlab 的備份文件會創建在/var/opt/gitlab/backups文件夾中,格式為時間戳_日期_版本號_gitlab_backup.tar,例如:1515031353_2018_01_04_10.3.2_gitlab_backup.tar
修改備份文件夾,需要修改配置文件/etc/gitlab/gitlab.rb中的:

gitlab_rails['backup_path'] = '/your_wish/backups'

  

然后gitlabctl-reconfigure生效。

2. 手動備份

命令:gitlab-rake gitlab:backup:create
會在命令執行的時間點,在你配置的文件夾或者默認文件夾創建一個備份文件。

3. 自動備份

Gitlab 支持 crontab 來創建計划任務,執行命令:sudo crontab -e -u root,為 root 用戶,創建並編輯 crontab。
例如,每周二到周六的早晨創建一個自己命名規則的備份:

15 04 * * 2-6  umask 0077; tar cfz /secret/gitlab/backups/$(date "+etc-gitlab-\%s.tgz") -C / etc/gitlab

  

crontab 可以參考:
http://www.pantz.org/software/cron/croninfo.html
更多備份用法,可以參考:
https://docs.gitlab.com/omnibus/settings/backups.html#backups

4. 恢復備份

先停止 gitlab 相關服務:

sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq

  

執行備份恢復命令:

gitlab-rake gitlab:backup:restore BACKUP=1515031353_2018_01_04_10.3.2

  

為了防止有問題,還是需要執行重新配置,用來重新配置和啟動:
gitlab-ctl reconfigure

  

5. 遷移,及版本不一致問題
Gitlab 遷移

Gitlab 的遷移非常簡單,只需要在目標服務器上安裝好之后,把 Gitlab 的備份文件放到備份目錄中,然后執行上一步的恢復備份命令即可。

Gitlab 遷移版本不一致問題

但是Gitlab 有個不爽的地方就是,不同版本號的備份文件不能相互使用。有時候備份文件是舊版本,安裝的時候自動安裝了最新版本,這時候備份文件就沒辦法使用了,怎么辦呢?

  1. 先卸載掉已經安裝的最新版Gitlab:sudo yum remove gitlab-ce
  2. 在 Gitlab package 地址https://packages.gitlab.com/gitlab/gitlab-ce中找到對應操作系統和版本的安裝包,例如 CentOS 7,Gitlab 10.3.1對應的是gitlab-ce-10.3.1-ce.0.el7.x86_64.rpm
    執行安裝命令
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce-10.3.1-ce.0.el7.x86_64 

  

然后重復之前的安裝、配置、恢復備份的目錄即可。

 


免責聲明!

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



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