基本介紹
GitLab是一個自托管的Git項目倉庫静尼,可以自己搭建個人代碼管理的倉庫,功能與github類似刮便。
安裝
下載 gitlab下載地址: https://about.gitlab.com/downloads/
安裝依賴的包
sudo yum install curl-devel
sudo yum install expat-devel
sudo yum install gettext-devel
sudo yum install openssl-devel
sudo yum install zlib-devel
sudo yum install perl-devel
sudo yum install curl
sudo yum install openssh-server
sudo yum install openssh-clients
sudo yum install postfix
sudo yum install cronie
Ubuntu系統(tǒng)使用apt-get方式安裝依賴包讹蘑。
使用gitlab官網(wǎng)的腳本安裝
curl -sS https: //packages .gitlab.com /install/repositories/gitlab/gitlab-ce/script .rpm.sh | sudo bash
或者使用gitlab的yum安裝gitlab
sudo yum install gitlab-ce
安裝完畢后,使用Web登錄
進入gitlab的管理頁面功偿,進行常用的分組盆佣,工程,用戶等功能點的維護械荷。
安裝完gitlab后的運維操作
初次配置服務(wù)
sudo gitlab-ctl reconfigure
啟動服務(wù)
sudo gitlab-ctl start
停止服務(wù)
sudo gitlab-ctl stop
重啟服務(wù)
sudo gitlab-ctl restart
備份倉庫
先修改 /etc/gitlab/gitlab.rb
配置要備份的路徑共耍,然后重新執(zhí)行命令sudo gitlab-ctl reconfigure,做重新配置更新吨瞎。
執(zhí)行如下命令痹兜,創(chuàng)建備份
sudo gitlab-rake gitlab:backup:create
創(chuàng)建備份是會顯示如下信息(會依次備份gitlab上的分組和所有的工程)。
備份文件個格式:Unix時間戳_gitlab_backup.tar颤诀,例如下面做的一個備份文件舉例字旭。
備份的倉庫恢復(fù)
gitlab-rake gitlab:backup:restore BACKUP=1483198680
恢復(fù)時,選擇的版本就是備份是產(chǎn)生的Unix時間戳崖叫。
*注:恢復(fù)時遗淳,先停掉服務(wù),以免雙寫導(dǎo)致數(shù)據(jù)錯誤心傀。 *
檢查服務(wù)的日志信息
# 檢查redis的日志
sudo gitlab-ctl tail redis
# 檢查postgresql的日志
sudo gitlab-ctl tail postgresql
# 檢查gitlab-workhorse的日志
sudo gitlab-ctl tail gitlab-workhorse
# 檢查logrotate的日志
sudo gitlab-ctl tail logrotate
# 檢查nginx的日志
sudo gitlab-ctl tail nginx
# 檢查sidekiq的日志
sudo gitlab-ctl tail sidekiq
# 檢查unicorn的日志
sudo gitlab-ctl tail unicorn
檢查服務(wù)狀態(tài)
sudo gitlab-ctl status
一般服務(wù)狀態(tài)顯示信息
顯示格式:
狀態(tài) : 進程名稱:(進程ID)運行時間(秒)洲脂;進程的日志服務(wù)進程和運行時間
run: gitlab-workhorse: (pid 11892) 281s; run: log: (pid 8630) 4742472s
run: logrotate: (pid 11904) 280s; run: log: (pid 8631) 4742472s
run: nginx: (pid 11911) 280s; run: log: (pid 8796) 4742455s
run: postgresql: (pid 12866) 18s; run: log: (pid 8627) 4742472s
run: redis: (pid 11989) 249s; run: log: (pid 8638) 4742472s
run: sidekiq: (pid 12850) 20s; run: log: (pid 8634) 4742472s
run: unicorn: (pid 12022) 247s; run: log: (pid 8629) 4742472s
| 狀態(tài) | 說明 |
| run | 運行狀態(tài) |
| down | 服務(wù)停止 |
常見的問題
1. 頁面顯示500,Whoops, something went wrong on our end.
500
Whoops, something went wrong on our end.
Try refreshing the page, or going back and attempting the action again.
Please contact your GitLab administrator if this problem persists.
如何檢查和定位問題恐锦?
使用命令檢查所有服務(wù)的狀態(tài)
sudo gitlab-ctl status
檢查服務(wù)狀態(tài)如下
run: gitlab-workhorse: (pid 11892) 91s; run: log: (pid 8630) 4742282s
run: logrotate: (pid 11904) 90s; run: log: (pid 8631) 4742282s
run: nginx: (pid 11911) 90s; run: log: (pid 8796) 4742265s
down: postgresql: 1s, normally up, want up; run: log: (pid 8627) 4742282s
run: redis: (pid 11989) 59s; run: log: (pid 8638) 4742282s
run: sidekiq: (pid 12201) 2s; run: log: (pid 8634) 4742282s
run: unicorn: (pid 12022) 57s; run: log: (pid 8629) 4742282s
定位問題
從服務(wù)狀態(tài)信息中顯示數(shù)據(jù)庫postgresql的狀態(tài)是down往果,即服務(wù)停止。
檢查數(shù)據(jù)庫postgresql的運行日志一铅,檢查出現(xiàn)什么錯誤陕贮?
$ sudo gitlab-ctl tail postgresql
==> /var/log/gitlab/postgresql/state <==
==> /var/log/gitlab/postgresql/current <==
2016-12-24_01:39:39.00188 FATAL: data directory "/var/opt/gitlab/postgresql/data" has group or world access
2016-12-24_01:39:39.00190 DETAIL: Permissions should be u=rwx (0700).
2016-12-24_01:39:40.00698 FATAL: data directory "/var/opt/gitlab/postgresql/data" has group or world access
2016-12-24_01:39:40.00700 DETAIL: Permissions should be u=rwx (0700).
日志顯示,數(shù)據(jù)庫的訪問權(quán)限應(yīng)該是只有用戶本身有讀寫執(zhí)行的權(quán)限潘飘,用戶組和其他用戶不能有權(quán)限肮之。
修改數(shù)據(jù)庫數(shù)據(jù)的權(quán)限后,檢查服務(wù)運行正常卜录。
了解了問題的定位和解決方式戈擒,其他問題也很容易在日志中發(fā)現(xiàn)和解決,問題可能是磁盤空間少艰毒,用戶權(quán)限錯誤或者其他原因筐高。
2. gitlab管理員密碼忘記,怎么重置密碼
Gitlab 修改root用戶密碼
使用rails工具打開終端
sudo gitlab-rails console production
查詢用戶的email丑瞧,用戶名柑土,密碼等信息,id:1 表示root賬號
user = User.where(id: 1 ).first
重新設(shè)置密碼
user.password = '新密碼'
user.password_confirmation = '新密碼'
保存密碼
user.save!
完整的操作ruby腳本
user = User.where( id : 1).first
user.password = '新密碼'
user.password_confirmation = '新密碼'
user.save!
然后使用重置過的密碼重新登錄绊汹。