《Git/Gitlab進(jìn)階》二:omnibus package安裝gitlab-ce

omnibus-package 安裝 gitlab-ce

ubuntu 下安裝 gitlab-ce 官方推薦安裝,步驟也非常簡(jiǎn)單.

安裝并配置需要的依賴

1 先更新 apt-get:

sudo apt-get update

2 再安裝 openssh-server

sudo apt-get install -y curl openssh-server ca-certificates

注意,在 ubuntu18 安裝時(shí) openssh-server 時(shí),可能會(huì)出現(xiàn)類似這樣的錯(cuò)誤:

sanotsu@sanotsu-ubt18:~$ sudo apt-get install -y curl openssh-server ca-certificates
正在讀取軟件包列表... 完成
正在分析軟件包的依賴關(guān)系樹
正在讀取狀態(tài)信息... 完成
ca-certificates 已經(jīng)是最新版 (20180409)。
ca-certificates 已設(shè)置為手動(dòng)安裝。
curl 已經(jīng)是最新版 (7.58.0-2ubuntu3)。
有一些軟件包無法被安裝。如果您用的是 unstable 發(fā)行版,這也許是
因?yàn)橄到y(tǒng)無法達(dá)到您要求的狀態(tài)造成的。該版本中可能會(huì)有一些您需要的軟件
包尚未被創(chuàng)建或是它們已被從新到(Incoming)目錄移出。
下列信息可能會(huì)對(duì)解決問題有所幫助:

下列軟件包有未滿足的依賴關(guān)系:
 openssh-server : 依賴: openssh-client (= 1:7.6p1-4)
                  依賴: openssh-sftp-server 但是它將不會(huì)被安裝
                  推薦: ssh-import-id 但是它將不會(huì)被安裝
E: 無法修正錯(cuò)誤,因?yàn)槟竽承┸浖3脂F(xiàn)狀,就是它們破壞了軟件包間的依賴關(guān)系。
sanotsu@sanotsu-ubt18:~$

這是因?yàn)榘惭b openssh-server 依賴 openssh-client。ubuntu 默認(rèn)有安裝 openssh-client,但是版本可能不滿足,所以只需再安裝一次需要的版本。

例如上面的出錯(cuò)信息,則需要降級(jí),命令安裝如下:

sudo apt-get install openssh-client=1:7.6p1-4

安裝成功之后,再安裝 openssh-server 即可。

安裝郵箱服務(wù)器 Postfix(非必要,大可不必)

sudo apt-get install -y postfix

然后按照提示,輸入自己的配置。大概有需要輸入的郵箱服務(wù)器地址,郵件名等等,還有一些使用 default 就好了。

如果不用 Postfix 來配置郵件收發(fā),例如 gitlab 配置使用 SMTP 來發(fā)送郵件(后續(xù)文章再說明),這個(gè)部分可以跳過。

如果安裝之后,想要移除,可使用sudo apt-get remove postfix來卸載。

添加 GitLab 軟件包存儲(chǔ)庫(kù)并安裝軟件包

添加 GitLab 軟件包存儲(chǔ)庫(kù)命令:

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

安裝命令:

sudo EXTERNAL_URL="http://192.168.XX.XX" apt-get install gitlab-ce

其中 EXTERNAL_URL 為 gitlab-ce 的訪問地址,如果不設(shè)定,默認(rèn)就是 http://127.0.0.1

注意,在之前的版本,設(shè)置EXTERNAL_URL="192.168.XX.XX"是可以的,不過我現(xiàn)在使用 12.6.0 這樣設(shè)置,會(huì)報(bào)錯(cuò),錯(cuò)誤如下:

There was an error running gitlab-ctl reconfigure:

GitLab external URL must include a schema and FQDN, e.g. http://gitlab.example.com/

下載和安裝過程需要一點(diǎn)時(shí)間。

安裝成功之后,打開之前設(shè)置的訪問地址,應(yīng)該會(huì)出現(xiàn)修改管理員密碼畫面,就表示 gitlab 安裝成功。

如果安裝完成之后的自動(dòng)運(yùn)行配置出現(xiàn)錯(cuò)誤,例如 url 配置出錯(cuò)等等,解決問題后再手動(dòng)再運(yùn)行一次sudo gitlab-ctl reconfigure

安裝完成之后的組件分析:

gitlab 的結(jié)構(gòu)分析,可參看官網(wǎng)說明,有助于理解各個(gè)組件的作用。

一些常用指令

1.查看狀態(tài):

sudo gitlab-ctl status

2.停止/啟動(dòng)/重啟 gitlab

sudo gitlab-ctl stop
sudo gitlab-ctl start
sudo gitlab-ctl restart

3.重新加載配置

sudo gitlab-ctl reconfigure

3 關(guān)閉/啟用開機(jī)自啟動(dòng)(慎重) 這個(gè) Gitlab 默認(rèn)是開機(jī)自啟動(dòng)的。

Ubuntu 下禁止 Gitlab 開機(jī)自啟動(dòng):

sudo systemctl disable gitlab-runsvdir.service

如果要設(shè)置開機(jī)自啟動(dòng),Ubuntu 下啟用 Gitlab 開機(jī)自啟動(dòng):

sudo systemctl enable gitlab-runsvdir.service

自啟動(dòng)也還 ok,如果 disable 掉,開機(jī)在使用sudo gitlab-ctl start就啟動(dòng)不了了,因?yàn)樗械姆?wù)都關(guān)了,要啟動(dòng)起來才行。

注意,如果 docker 的 gitlab 和 omnibus-package gitlab 安裝在同一臺(tái)機(jī)器,注意只開一個(gè),因?yàn)槎丝谑裁吹氖且粯拥摹?/strong>

如果安裝完 omnibus-package gitlab,發(fā)現(xiàn)啟動(dòng)不了 docker 的 gitlab,并提示端口 22 已被占用,可能就是 sshd 占用了端口,關(guān)閉 ssh 即可。

/etc/init.d/ssh stop

當(dāng)然,開啟就是

/etc/init.d/ssh start

如果要關(guān)閉開機(jī)自啟動(dòng) ssh(沒必要),刪除其自動(dòng)配置

sudo mv /etc/init/ssh.conf /etc/init/ssh.conf/disabled

備份和還原用戶數(shù)據(jù)

備份

對(duì)應(yīng)命令:

sudo gitlab-rake gitlab:backup:create

默認(rèn)的備份地址在/var/opt/gitlab/backups中,查看該路徑可以看到以下內(nèi)容,即為備份的 userdata。

格式是:{時(shí)間戳10位}_{年_月_日}_{gitlab版本號(hào)}_gitlab_backup.tar

注意,在還原時(shí),版本不一致的備份,是不能還原的,所以需要將 gitlab 的版本保持在一個(gè)固定的版本。

還原

前提條件:

  • 您已經(jīng)安裝了與創(chuàng)建備份的 GitLab Omnibus 完全相同的版本和類型(CE / EE)。
  • 你 sudo gitlab-ctl reconfigure 至少跑了一次。
  • GitLab 正在運(yùn)行。如果沒有,請(qǐng)使用它 sudo gitlab-ctl start。

操作步驟:

  • 停止連接到數(shù)據(jù)庫(kù)的進(jìn)程,剩下部分繼續(xù) running
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq

可以在停止之后,查看 gitlab 的狀態(tài)sudo gitlab-ctl status,確認(rèn)一下兩個(gè)服務(wù)已經(jīng)停止。

  • 再在已有的備份中,選擇需要恢復(fù)的版本
sudo gitlab-rake gitlab:backup:restore BACKUP={備份的文件夾名}
  • 恢復(fù)過程中,會(huì)有幾次確認(rèn)信息要手動(dòng)確認(rèn),如果是確認(rèn)要恢復(fù),按照提示點(diǎn)擊 yes 就好了。

  • 恢復(fù)完之后,要重啟 gitlab 服務(wù)

sudo gitlab-ctl restart

此時(shí)再去訪問 gitlab 的訪問地址,就恢復(fù)到重置 root 密碼的狀態(tài)了。

如果是例如公司內(nèi)部需要一個(gè)私有的倉(cāng)庫(kù),最好還是使用 omnibus-package 安裝,官方推薦,直接在設(shè)備的安裝,配置等比較方便。

后續(xù)的內(nèi)容都是以這種方式安裝為例子。docker 之類的也可參考,不過是需要透過一層 docker 指令了。

默認(rèn)配置文件地址/etc/gitlab/gitlab.rb,后續(xù)會(huì)說明更多的配置,非常重要。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容