Centos 6 搭建安裝 Gitlab

【筆記在這裏持續更新】javascript




官方安裝教程

解決官方沒法安裝的狀況

編輯源

使用清華大學 TUNA 鏡像源 打開網址將內容複製到gitlab-ce.repo文件中,編輯路徑vim /etc/yum.repos.d/gitlab-ce.repohtml

[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key複製代碼

更新本地 YUM 緩存

sudo yum makecache複製代碼

安裝 GitLab 社區版

sudo yum install gitlab-ce #(自動安裝最新版)
sudo yum install gitlab-ce-8.8.4-ce.0.el6 #(安裝指定版本)複製代碼

更改配置

vim /etc/gitlab/gitlab.rb
 # 找到 external_url 'http://000.00.00.00:8081'
 # 修改爲你的地址複製代碼

配置並啓動GitLab

# 打開`/etc/gitlab/gitlab.rb`,
# 將`external_url = 'http://git.example.com'`修改成本身的IP地址:`http://xxx.xx.xxx.xx`,
# 而後執行下面的命令,對GitLab進行編譯。
sudo gitlab-ctl reconfigure複製代碼

登陸GitLab

Username: root 
Password: 5iveL!fe複製代碼

GitLab頭像沒法正常顯示

緣由:gravatar被牆
解決辦法:
編輯 /etc/gitlab/gitlab.rb,將java

# gitlab_rails['gravatar_plain_url'] = 'http://gravatar.duoshuo.com/avatar/%{hash}?s=%{size}&d=identicon'複製代碼

修改成:nginx

gitlab_rails['gravatar_plain_url'] = 'http://gravatar.duoshuo.com/avatar/%{hash}?s=%{size}&d=identicon'複製代碼

而後在命令行執行:git

sudo gitlab-ctl reconfigure 
sudo gitlab-rake cache:clear RAILS_ENV=production複製代碼

nginx配置

解決 80 端口被佔用github

upstream gitlab {
     server 114.55.111.111:8081 ;
}
server {
    #偵聽的80端口
    listen       80;
    server_name  git.diggg.cn;
    location / {
        proxy_pass   http://gitlab;    #在這裏設置一個代理,和upstream的名字同樣
        #如下是一些反向代理的配置可刪除
        proxy_redirect             off;
        #後端的Web服務器能夠經過X-Forwarded-For獲取用戶真實IP
        proxy_set_header           Host $host;
        proxy_set_header           X-Real-IP $remote_addr;
        proxy_set_header           X-Forwarded-For $proxy_add_x_forwarded_for;
        client_max_body_size       10m; #容許客戶端請求的最大單文件字節數
        client_body_buffer_size    128k; #緩衝區代理緩衝用戶端請求的最大字節數
        proxy_connect_timeout      300; #nginx跟後端服務器鏈接超時時間(代理鏈接超時)
        proxy_send_timeout         300; #後端服務器數據回傳時間(代理髮送超時)
        proxy_read_timeout         300; #鏈接成功後,後端服務器響應時間(代理接收超時)
        proxy_buffer_size          4k; #設置代理服務器(nginx)保存用戶頭信息的緩衝區大小
        proxy_buffers              4 32k; #proxy_buffers緩衝區,網頁平均在32k如下的話,這樣設置
        proxy_busy_buffers_size    64k; #高負荷下緩衝大小(proxy_buffers*2)
        proxy_temp_file_write_size 64k; #設定緩存文件夾大小,大於這個值,將從upstream服務器傳
    }
}複製代碼
# 檢查配置
/usr/local/nginx-1.5.1/sbin/nginx -tc conf/nginx.conf

# nginx 從新加載配置
/usr/local/nginx-1.5.1/sbin/nginx -s reload複製代碼

運維

# 啓動全部 gitlab 組件:
sudo gitlab-ctl start

# 中止全部 gitlab 組件:
sudo gitlab-ctl stop

# 重啓全部 gitlab 組件:
sudo gitlab-ctl restart

# 查看服務狀態
sudo gitlab-ctl status

# 啓動服務
sudo gitlab-ctl reconfigure

# 修改默認的配置文件
sudo vim /etc/gitlab/gitlab.rb

# 查看版本
sudo cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

# echo "vm.overcommit_memory=1" >> /etc/sysctl.conf
# sysctl -p
# echo never > /sys/kernel/mm/transparent_hugepage/enabled

# 檢查gitlab
gitlab-rake gitlab:check SANITIZE=true --trace

# 查看日誌
sudo gitlab-ctl tail複製代碼

備份恢復

Gitlab 建立備份

使用Gitlab一鍵安裝包安裝Gitlab很是簡單, 一樣的備份恢復與遷移也很是簡單,用一條命令便可建立完整的Gitlab備份:數據庫

gitlab-rake gitlab:backup:create複製代碼

以上命令將在/var/opt/gitlab/backups目錄下建立一個名稱相似爲xxxxxxxx_gitlab_backup.tar的壓縮包, 這個壓縮包就是Gitlab整個的完整部分, 其中開頭的xxxxxx是備份建立的時間戳。vim

Gitlab 修改備份文件默認目錄

修改/etc/gitlab/gitlab.rb來修改默認存放備份文件的目錄:後端

gitlab_rails['backup_path'] = '/mnt/backups'複製代碼

修改後使用gitlab-ctl reconfigure命令重載配置文件。緩存

備份

0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create複製代碼

恢復

首先進入備份 gitlab 的目錄,這個目錄是配置文件中的 gitlab_rails['backup_path'] ,默認爲 /var/opt/gitlab/backups

而後中止 unicorn 和 sidekiq ,保證數據庫沒有新的鏈接,不會有寫數據狀況。

# 中止相關數據鏈接服務
# ok: down: unicorn: 0s, normally up
gitlab-ctl stop unicorn  
# ok: down: sidekiq: 0s, normally up
gitlab-ctl stop sidekiq

# 從xxxxx編號備份中恢復
# 而後恢復數據,1406691018爲備份文件的時間戳
gitlab-rake gitlab:backup:restore BACKUP=xxxxxx

# 啓動Gitlab
sudo gitlab-ctl start複製代碼

錯誤處理

Error executing action `run` on resource 'bash[migrate gitlab-rails database]'複製代碼

gitlab.com/gitlab-org/…

NameError: uninitialized constant Devise::Async複製代碼
相關文章
相關標籤/搜索