您好,登錄后才能下訂單哦!
gitlab / gitlab-ce
官網(wǎng)下載:https://www.gitlab.cc/downloads
官網(wǎng)安裝說明:https://doc.gitlab.cc/ce/install/requirements.html
開源版本和企業(yè)版本對比:https://www.gitlab.cc/features/#enterprise
Gitlab Community Edition 鏡像使用幫助
在阿里云上通過Omnibus一鍵安裝包安裝Gitlab
使用清華大學(xué) TUNA 鏡像源 打開網(wǎng)址將內(nèi)容復(fù)制到gitlab-ce.repo
文件中,編輯路徑
vim /etc/yum.repos.d/gitlab-ce.repo [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
sudo yum makecache
wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm rpm -ivh nginx-release-centos-6-0.el6.ngx.noarch.rpm
如果已經(jīng)用yum安裝過git,并且版本低于2.7.4,要先卸載掉舊的版本
yum install vim curl openssh-server openssh-clients gcc-c++ zlib1g-dev zlib-devel curl-devel expat-devel gettext-devel opgcc perl-ExtUtils-MakeMaker yum remove git
使用源碼編譯安裝git
mkdir /tmp/git && cd /tmp/git curl -O --progress https://www.kernel.org/pub/software/scm/git/git-2.8.5.tar.gz tar zxvf git-2.8.5.tar.gz cd git-2.8.5 ./configure make prefix=/usr/local all # 安裝到/usr/local/bin make prefix=/usr/local install # 驗證git版本號 git --version #查看git安裝路徑 which git #創(chuàng)建軟連接 ln -s /usr/local/bin/git /usr/bin/git
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' # 修改成你的地址 # 然后執(zhí)行下面的命令,對GitLab進行編譯。 sudo gitlab-ctl reconfigure #啟動gitlab sudo gitlab-ctl restart
可能遇到的問題
解決方法:
是因為/etc/gitlab/gitlab.rb文件中的內(nèi)容是: external_url 'hostname' 將其修改為: external_url='hostname' 即可,只需要在原來的配置項中添加個 ‘=’ 即可
Username: root Password: 5iveL!fe
Gitlab中文社區(qū)版地址:https://gitlab.com/xhang/gitlab
1. 使用 marbleqi 制作的漢化增量補丁包
注: 使用該漢化補丁包需要重新配置編譯資源文件
sudo gitlab-ctl reconfigure
2. 手動導(dǎo)出漢化補丁包漢化
請先使用官方包安裝或升級完成,確認當(dāng)前版本。
sudo cat /opt/gitlab/embedded/service/gitlab-rails/VERSION 9.3.5
假設(shè)當(dāng)前版本為 v9.3.5,并確認漢化版本庫是否包含該版本的漢化標(biāo)簽(-zh結(jié)尾),也就是是否包含 v9.3.5-zh。
# 克隆漢化版本庫 git clone https://gitlab.com/xhang/gitlab.git # 如果已經(jīng)克隆過,則進行更新 git fetch
# 導(dǎo)出9.3.5 版本的漢化補丁
git diff v9.3.5 v9.3.5-zh > ../9.3.5-zh.diff
然后上傳 9.0.0-zh.diff 文件到服務(wù)器。
# 停止 gitlab sudo gitlab-ctl stop sudo patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < ../9.3.5-zh.diff
確定沒有 .rej 文件,重啟 GitLab 即可。
sudo gitlab-ctl start
執(zhí)行重新配置命令
sudo gitlab-ctl reconfigure
如果漢化中出現(xiàn)問題,請重新安裝 GitLab(注意備份數(shù)據(jù))。
此時訪問http://192.168.0.80就是全中文頁面了
當(dāng)gitlab安裝完成后,根據(jù)自己的環(huán)境,要修改配置。
如:
gitlab修改nginx端口,綁定IP等
gitlab修改ssh端口
gitlab修改訪問url等
gitlab修改數(shù)據(jù)庫類型(這個沒必要,因為這里的數(shù)據(jù)庫只存儲些用戶名,gitlab代碼放在/var/opt/gitlab/git-data/下)
gitlab修改redis,gunicorn配置等等
所有的配置在/etc/gitlab/gitlab.rb中修改,修改完配置后執(zhí)行gitlab-ctl reconfigure生效
gitlab所有的工程目錄都在/var/opt/gitlab/下
# ls /var/opt/gitlab/ backups bootstrapped git-data gitlab-rails gitlab-shell logrotate nginx postgresql redis
修改配置示例:
#grep -v '#' gitlab.rb |grep -v ^$ external_url 'http://gitlab.sec.com' gitlab_rails['gitlab_shell_ssh_port'] = 2222 nginx['listen_addresses']= ['10.18.103.1'] 修改url是別人通過url拉取代碼,IP對客戶端透明。修改ssh port及nginx綁定IP等為環(huán)境需要解決沖突。
原因:gravatar被墻 解決辦法: 編輯 /etc/gitlab/gitlab.rb,將
# gitlab_rails['gravatar_plain_url'] = 'http://gravatar.duoshuo.com/avatar/%{hash}?s=%{size}&d=identicon'
修改為:
gitlab_rails['gravatar_plain_url'] = 'http://gravatar.duoshuo.com/avatar/%{hash}?s=%{size}&d=identicon'
然后在命令行執(zhí)行:
sudo gitlab-ctl reconfigure sudo gitlab-rake cache:clear RAILS_ENV=production
解決 80 端口被占用 upstream gitlab { server 114.55.111.111:8081 ; } server { #偵聽的80端口 listen 80; server_name git.diggg.cn; location / { proxy_pass http://gitlab; #在這里設(shè)置一個代理,和upstream的名字一樣 #以下是一些反向代理的配置可刪除 proxy_redirect off; #后端的Web服務(wù)器可以通過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; #允許客戶端請求的最大單文件字節(jié)數(shù) client_body_buffer_size 128k; #緩沖區(qū)代理緩沖用戶端請求的最大字節(jié)數(shù) proxy_connect_timeout 300; #nginx跟后端服務(wù)器連接超時時間(代理連接超時) proxy_send_timeout 300; #后端服務(wù)器數(shù)據(jù)回傳時間(代理發(fā)送超時) proxy_read_timeout 300; #連接成功后,后端服務(wù)器響應(yīng)時間(代理接收超時) proxy_buffer_size 4k; #設(shè)置代理服務(wù)器(nginx)保存用戶頭信息的緩沖區(qū)大小 proxy_buffers 4 32k; #proxy_buffers緩沖區(qū),網(wǎng)頁平均在32k以下的話,這樣設(shè)置 proxy_busy_buffers_size 64k; #高負荷下緩沖大小(proxy_buffers*2) proxy_temp_file_write_size 64k; #設(shè)定緩存文件夾大小,大于這個值,將從upstream服務(wù)器傳 } } # 檢查配置 /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 # 查看服務(wù)狀態(tài) sudo gitlab-ctl status # 啟動服務(wù) 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非常單, 同樣的備份恢復(fù)與遷移也非常簡單,用一條命令即可創(chuàng)建完整的Gitlab備份:
gitlab-rake gitlab:backup:create #如果使用源碼安裝的gitlab話,使用以下命令 sudo -u git -H bundle exec rake gitlab:backup:create RAILS_ENV=production
以上命令將在/var/opt/gitlab/backups目錄下創(chuàng)建一個名稱類似為xxxxxxxx_gitlab_backup.tar的壓縮包, 這個壓縮包就是Gitlab整個的完整部分, 其中開頭的xxxxxx是備份創(chuàng)建的時間戳。
也可以使用SKIP變量來選擇要備份的內(nèi)容,SKIP變量的選項有:db, uploads (attachments), repositories, builds(CI build output logs), artifacts (CI build artifacts), lfs (LFS objects)。多個項之間用逗號隔開:
sudo gitlab-rake gitlab:backup:create SKIP=db,uploads1
backup命令執(zhí)行之后,終端上會出現(xiàn)導(dǎo)出數(shù)據(jù)庫及repo數(shù)據(jù)等的的操作日志。
修改/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 ,保證數(shù)據(jù)庫沒有新的連接,不會有寫數(shù)據(jù)情況。
# 停止相關(guān)數(shù)據(jù)連接服務(wù) gitlab-ctl stop unicorn # ok: down: unicorn: 0s, normally up gitlab-ctl stop sidekiq # ok: down: sidekiq: 0s, normally up # 從xxxxx編號備份中恢復(fù) # 然后恢復(fù)數(shù)據(jù),1406691018為備份文件的時間戳 gitlab-rake gitlab:backup:restore BACKUP=1406691018 # 啟動Gitlab sudo gitlab-ctl start
# 恢復(fù)過程中沒有權(quán)限 mkdir /var/opt/gitlab/backups chown git /var/opt/gitlab/backups chmod 700 /var/opt/gitlab/backups # 恢復(fù)成功頁面報沒有權(quán)限的錯誤 sudo chown -R git:git /var/opt/gitlab/git-data/repositories sudo chmod -R ug+rwX,o-rwx /var/opt/gitlab/git-data/repositories sudo chmod -R ug-s /var/opt/gitlab/git-data/repositories sudo find /var/opt/gitlab/git-data/repositories -type d -print0 | sudo xargs -0 chmod g+
把備份文件拷貝到gitlab的備份目錄下,根據(jù)上面gitlab恢復(fù)步驟即可。
Error executing action `run` on resource 'bash[migrate gitlab-rails database]'
https://gitlab.com/gitlab-org/gitlab-ce/issues/2052#note_1667899
NameError: uninitialized constant Devise::Async
本文參考:http://www.cnblogs.com/chinajava/p/5870683.html
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。