基本介紹
GitLab是一個自托管的Git項目倉庫,可以自己搭建個人代碼管理的倉庫,功能與github類似。
安裝
下載 gitlab下載地址: https://about.gitlab.com/downloads/
安裝依賴的包
1
2
3
4
5
6
7
8
9
10
11
|
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系統使用apt-get方式安裝依賴包。
使用gitlab官網的腳本安裝
1
|
curl -sS https:
//packages
.gitlab.com
/install/repositories/gitlab/gitlab-ce/script
.rpm.sh |
sudo
bash
|
或者使用gitlab的yum安裝gitlab
1
|
sudo
yum
install
gitlab-ce
|
安裝完畢后,使用Web登錄
進入gitlab的管理頁面,進行常用的分組,工程,用戶等功能點的維護。
安裝完gitlab后的運維操作
初次配置服務
1
|
sudo
gitlab-ctl reconfigure
|
啟動服務
1
|
sudo
gitlab-ctl start
|
停止服務
1
|
sudo
gitlab-ctl stop
|
重啟服務
1
|
sudo
gitlab-ctl restart
|
檢查服務的日志信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# 檢查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
|
檢查服務狀態
1
|
sudo
gitlab-ctl status
|
一般服務狀態顯示信息
顯示格式:
狀態 : 進程名稱:(進程ID)運行時間(秒);進程的日志服務進程和運行時間
1
2
3
4
5
6
7
|
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
|
狀態 | 說明 |
run | 運行狀態 |
down | 服務停止 |
常見的問題
1. 頁面顯示500,Whoops, something went wrong on our end.
1
2
3
4
5
6
7
|
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.
|
如何檢查和定位問題?
使用命令檢查所有服務的狀態
1
|
sudo
gitlab-ctl status
|
檢查服務狀態如下
1
2
3
4
5
6
7
|
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
|
定位問題
從服務狀態信息中顯示數據庫postgresql的狀態是down,即服務停止。
檢查數據庫postgresql的運行日志,檢查出現什么錯誤?
1
2
3
4
5
6
7
8
|
$
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).
|
日志顯示,數據庫的訪問權限應該是只有用戶本身有讀寫執行的權限,用戶組和其他用戶不能有權限。
修改數據庫數據的權限后,檢查服務運行正常。
了解了問題的定位和解決方式,其他問題也很容易在日志中發現和解決,問題可能是磁盤空間少,用戶權限錯誤或者其他原因。
2. gitlab管理員密碼忘記,怎么重置密碼
Gitlab 修改root用戶密碼
使用rails工具打開終端
1
|
sudo
gitlab-rails console production
|
查詢用戶的email,用戶名,密碼等信息,id:1 表示root賬號
1
|
user = User.where(id:
1
).first
|
重新設置密碼
1
2
|
user.password =
‘新密碼‘
user.password_confirmation =
‘新密碼‘
|
保存密碼
1
|
user.save!
|
完整的操作ruby腳本
1
2
3
4
|
user = User.where(
id
: 1).first
user.password =
‘新密碼‘
user.password_confirmation =
‘新密碼‘
user.save!
|
然后使用重置過的密碼重新登錄。