以下內(nèi)容為本人的著作,如需要轉(zhuǎn)載,請(qǐng)聲明原文鏈接 微信公眾號(hào)「ENG八戒」https://mp.weixin.qq.com/s/Br0ETd_aNffEZoTAba03Bw
最近到了新團(tuán)隊(duì),只有幾部新電腦,然后啥也沒(méi)有了。老江說(shuō)需要一個(gè)管理工程代碼的 git 版本服務(wù)器,還說(shuō)他以前用過(guò) gitlab,于是我就自告奮勇接下了鍋,在本地主機(jī)里搭建上線一個(gè) Gitlab 服務(wù)器。
使用這個(gè) git 版本服務(wù)器不僅支持用 git 工具同步代碼,還可以像打開(kāi)一個(gè)網(wǎng)站一樣使用倉(cāng)庫(kù)管理的其它功能,非常方便。入口連接地址需要自己配置,后邊有介紹。
Gitlab 遵守 MIT 協(xié)議,所以可以放心大膽使用。
目標(biāo):
為了快速上線一個(gè)馬上用到的版本服務(wù)器,這里不打算對(duì) gitlab 的使用做詳細(xì)說(shuō)明,僅針對(duì)安裝配置和上線做初步的介紹。
后期計(jì)劃:
可能有些使用場(chǎng)景也需要用到一些特殊的服務(wù),比如郵箱、固定域名訪問(wèn)地址、外網(wǎng)訪問(wèn)等,所以后期也會(huì)有這方面的介紹,敬請(qǐng)關(guān)注。
基礎(chǔ)環(huán)境:
Ubuntu 18.04.1 amd64
良好的網(wǎng)絡(luò)
1) 準(zhǔn)備一下安裝環(huán)境
以下會(huì)使用 apt-get
來(lái)安裝軟件,由于肉身在墻內(nèi)(相信大部分讀者也一樣吧?),所以切換安裝源到墻內(nèi)對(duì)于安裝過(guò)程會(huì)有幫助,起碼時(shí)間上會(huì)快一丟丟。為了以后如果有需要還原默認(rèn)的安裝源配置,這里特地備份一下 apt-get
的安裝源配置文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
然后打開(kāi)它
sudo gedit /etc/apt/sources.list
我覺(jué)得阿里云的資源訪問(wèn)速度比較快,所以這里準(zhǔn)備把安裝源切到阿里云,這里有個(gè) Ubuntu 的資源貼出來(lái)給大家耍耍,用瀏覽器打開(kāi)下邊的地址
https://developer.aliyun.com/mirror/ubuntu?spm=a2c6h.13651102.0.0.3e221b114ndGlW
這里邊列出了好幾個(gè)配置參考,對(duì)應(yīng)于各個(gè) Ubuntu LTS 版本(比如16.04、18.04、20.04等),太貼心了。以示敬意,不多說(shuō),直接拷貝對(duì)應(yīng)的配置內(nèi)容然后粘貼到上邊打開(kāi)的 sources.list
文檔中并且保存。
接著就可以拉取最新的安裝包信息了,開(kāi)始后稍等片刻
sudo apt-get update
為了下面的操作,需要先安裝一個(gè)工具 curl
sudo apt-get install curl
安裝 gitlab 時(shí)還有很多的依賴這里沒(méi)有展開(kāi)來(lái)講,不過(guò)幸好官方其實(shí)提供了一個(gè)現(xiàn)成腳本用來(lái)配置倉(cāng)庫(kù),用下面的指令就可以執(zhí)行
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
上面執(zhí)行過(guò)程有可能會(huì)失敗,提示
Installing /etc/apt/sources.list.d/gitlab_gitlab-ce.list...curl: (7) Failed to connect to packages.gitlab.com port 443: Connection refused
這是連接不穩(wěn)定導(dǎo)致的,多執(zhí)行幾次指令或許就順利通過(guò)了。下邊是我的執(zhí)行結(jié)果,表示倉(cāng)庫(kù)已經(jīng)設(shè)置成功,萬(wàn)事俱備就等著一鍵安裝了
Detected operating system as Ubuntu/bionic.
Checking for curl...
Detected curl...
Checking for gpg...
Detected gpg...
Running apt-get update... done.
Installing apt-transport-https... done.
Installing /etc/apt/sources.list.d/gitlab_gitlab-ce.list...done.
Importing packagecloud gpg key... gpg: WARNING: unsafe ownership on homedir '/home/if/.gnupg'
done.
Running apt-get update... done.
The repository is setup! You can now install packages.
2) 在線安裝 gitlab
開(kāi)始安裝
sudo apt-get install gitlab-ce
好遺憾,又提示 connect 失敗了
Could not connect to packages.gitlab.com:443
...
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
在上邊的安裝失敗提示信息最后還建議在安裝命令參數(shù)里添加個(gè)選項(xiàng) --fix-missing
,然后重試
sudo apt-get install gitlab-ce --fix-missing
不幸的是,我這邊還是安裝失敗了,如果你的網(wǎng)絡(luò)足夠好或許就成功了呢,要看安裝成功的信息可以翻到 手動(dòng)安裝
末尾,安裝成功可以直接跳到 啟動(dòng) gitlab 服務(wù)
一節(jié)。
苦啊,那就手動(dòng)安裝吧,繼續(xù)看。。。
3) 手動(dòng)安裝 gitlab
用瀏覽器去官方網(wǎng)站把安裝包 down下來(lái)
https://packages.gitlab.com/gitlab/gitlab-ce
我這里下載的是當(dāng)前最新的包
gitlab-ce_14.10.2-ce.0_amd64.deb
找個(gè)目錄存一下再到目錄里執(zhí)行
sudo dpkg -i gitlab-ce_14.10.2-ce.0_amd64.deb
這個(gè)安裝包大小差不多 1G,稍等了一會(huì),終于安裝完成!欣賞一下壯舉
Selecting previously unselected package gitlab-ce.
(Reading database ... 130072 files and directories currently installed.)
Preparing to unpack gitlab-ce_14.10.2-ce.0_amd64.deb ...
Unpacking gitlab-ce (14.10.2-ce.0) ...
Setting up gitlab-ce (14.10.2-ce.0) ...
It looks like GitLab has not been configured yet; skipping the upgrade script.
*. *.
*** ***
***** *****
.****** *******
******** ********
,,,,,,,,,***********,,,,,,,,,
,,,,,,,,,,,*********,,,,,,,,,,,
.,,,,,,,,,,,*******,,,,,,,,,,,,
,,,,,,,,,*****,,,,,,,,,.
,,,,,,,****,,,,,,
.,,,***,,,,
,*,.
_______ __ __ __
/ ____(_) /_/ / ____ _/ /_
/ / __/ / __/ / / __ `/ __ \
/ /_/ / / /_/ /___/ /_/ / /_/ /
\____/_/\__/_____/\__,_/_.___/
Thank you for installing GitLab!
GitLab was unable to detect a valid hostname for your instance.
Please configure a URL for your GitLab instance by setting `external_url`
configuration in /etc/gitlab/gitlab.rb file.
Then, you can start your GitLab instance by running the following command:
sudo gitlab-ctl reconfigure
For a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
Help us improve the installation experience, let us know how we did with a 1 minute survey:
https://gitlab.fra1.qualtrics.com/jfe/form/SV_6kVqZANThUQ1bZb?installation=omnibus&release=14-10
4) 啟動(dòng) gitlab 服務(wù)
上邊安裝成功的提示信息里,說(shuō)到因?yàn)榘惭b過(guò)程沒(méi)有檢測(cè)到有效的主機(jī)名,需要配置登錄地址,修改文件 /etc/gitlab/gitlab.rb
。用文檔圖形編輯工具 gedit
打開(kāi)這個(gè)文件
sudo gedit /etc/gitlab/gitlab.rb
在上面打開(kāi)的文件中,找到變量 external_url
,把主機(jī)的 IP 地址填進(jìn)去并保存。主機(jī)的 IP 可以用指令 ifconfig
找到。一般還會(huì)在 IP 后邊添加個(gè)端口號(hào)防止和默認(rèn)的端口沖突,我這里選了 8080
external_url 'http://IP:8080/'
填在 external_url
后邊的內(nèi)容就是 gitlab 的登錄地址了。找到的這個(gè) IP 一般都是網(wǎng)內(nèi)動(dòng)態(tài)地址,所以上面的這個(gè)登錄地址只在網(wǎng)內(nèi)有效。如果有需求在網(wǎng)外訪問(wèn),考慮到安全性等因素,需要 VPN 支持,這里不展開(kāi)。另外,畢竟是動(dòng)態(tài)地址,如果需要使用固定的域名地址訪問(wèn),需要 DNS 服務(wù)器支持,還是不展開(kāi)了。
最后,載入配置并開(kāi)始運(yùn)行 Gitlab 服務(wù)
sudo gitlab-ctl reconfigure
重新啟動(dòng)所有 gitlab 相關(guān)服務(wù)會(huì)花點(diǎn)時(shí)間。
另外,重啟服務(wù)器主機(jī)后,默認(rèn)情況下,不需要手動(dòng)重啟 gitlab 服務(wù),gitlab 會(huì)自動(dòng)啟動(dòng)。如果你主動(dòng)關(guān)閉了 gitlab 服務(wù),那么打開(kāi)的指令是
sudo gitlab-ctl start
5) 修改 gitlab 管理員密碼
gitlab 安裝完畢時(shí),會(huì)生成一個(gè)文件 /etc/gitlab/initial_root_password 保存管理員賬戶 root 的初始密碼
~$ sudo cat initial_root_password
# WARNING: This value is valid only in the following conditions
# 1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
# 2. Password hasn't been changed manually, either via UI or via command line.
#
# If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.
Password: 93fm3-ae-f3jijq2oqh3iuhUFUEIBEFAFE434J5-PP04K30=
# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.
從文件內(nèi)容來(lái)看,這個(gè)密碼會(huì)在24小時(shí)后被自動(dòng)刪除,所以需要把這 root 賬戶的密碼另存或者重設(shè)一個(gè)好記點(diǎn)的。
修改管理員密碼有幾種方式,我這里用 gitlab-rails 指令重新設(shè)置管理員密碼,設(shè)置完畢之后不需要重啟 gitlab 服務(wù)。先進(jìn)入控制臺(tái)
sudo gitlab-rails console
找到管理員賬戶,存入自定義變量 user
irb(main):001:0> user = User.find_by_username 'root'
=> #<User id:1 @root>
設(shè)置密碼,太簡(jiǎn)單的密碼在后邊保存的時(shí)候會(huì)導(dǎo)致操作失敗
irb(main):002:0> user.password = 'xxx'
=> "xxx"
設(shè)置確認(rèn)密碼
irb(main):003:0> user.password_confirmation = 'xxx'
=> "xxx"
保存
irb(main):004:0> user.save!
=> true
退出控制臺(tái)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-806247.html
irb(main):005:0> exit
好了,去試一下用瀏覽器打開(kāi)網(wǎng)址 http://IP:8080/ 吧,祝你好運(yùn)!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-806247.html
到了這里,關(guān)于在局域網(wǎng)搭建一個(gè)帶 web 操作頁(yè)面的 git 版本服務(wù)器 - Gitlab的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!