CentOS 7下Yum及RPM安裝GitLab CE 14.0.3
一、概述
GitLab是一個利用Ruby on Rails開發(fā)的開源應(yīng)用程序,實現(xiàn)一個自托管的Git項目倉庫,可通過Web界面進(jìn)行訪問公開的或者私人項目。它擁有與GitHub類似的功能,能夠瀏覽源代碼,管理缺陷和注釋??梢怨芾韴F(tuán)隊對倉庫的訪問,它非常易于瀏覽提交過的版本并提供一個文件歷史庫。團(tuán)隊成員可以利用內(nèi)置的簡單聊天程序(Wall)進(jìn)行交流。它還提供一個代碼片段收集功能可以輕松實現(xiàn)代碼復(fù)用,便于日后有需要的時候進(jìn)行查找。
二、部署環(huán)境說明
本文中使用本地VM虛機(jī)部署測試。
OS:CentOS 7.8 x64
IP:192.168.168.100
虛機(jī)配置:2核CPU、4G內(nèi)存
注:系統(tǒng)為最小化安裝,部署前已完成系統(tǒng)初始化、內(nèi)核及安全優(yōu)化。
官方文檔:
https://doc.gitlab.cc/omnibus/
推薦安裝方法:官方 Linux 軟件包。Linux軟件包安裝速度更快、升級更容易,并且包含其他方法所沒有的增強(qiáng)可靠性的功能。 通過單個包(也稱為 Omnibus)安裝,該包捆綁了運行 GitLab 所需的所有不同服務(wù)和工具。 建議至少 4 GB 的內(nèi)存。
三、基礎(chǔ)依賴環(huán)境
1.安裝依賴
- yum -y install curl policycoreutils-python openssh-server perl
2.防火墻配置
CentOS7 默認(rèn)使用firewall,本文中禁用firewall,使用iptables。后續(xù)按實際配置需求開放端口。
3.安裝 Postfix(CentOS 7系統(tǒng)一般已默認(rèn)安裝)
使用Postfix發(fā)送通知電子郵件。如果想使用其他解決方案發(fā)送電子郵件,請?zhí)^此步驟并在安裝GitLab后配置外部SMTP服務(wù)器。
- yum -y install postfix
- systemctl enable postfix
- systemctl start postfix
四、YUM安裝GitLab
1.添加 GitLab 包存儲庫
方法一:使用官方Y(jié)UM源
- curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash
方法二:使用國內(nèi)YUM源
## 新建REPO文件
- vi /etc/yum.repos.d/gitlab-ce.repo
- //添加如下內(nèi)容
- [gitlab-ce]
- name=Gitlab CE Repository
- baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
- gpgcheck=0
- enabled=1
## 更新本地yum緩存
- yum makecache fast
2.安裝
## 安裝最新版
- yum -y install gitlab-ce
安裝完成如下圖所示。

上圖提示:GitLab 無法檢測到實例的有效主機(jī)名,請通過設(shè)置 /etc/gitlab/gitlab.rb 文件中的“external_url”配置項為GitLab實例配置URL。
## 安裝指定版本
- yum -y install gitlab-ce-x.x.x
- //x.x.x代表版本號
五、RPM包安裝GitLab
如果不習(xí)慣通過安裝存儲庫來安裝Gitlab,可以下載RPM包來安裝。RPM包集成了它所需要的軟件,簡化安裝步驟。
官方RPM包地址:
https://packages.gitlab.com/gitlab/gitlab-ce
國內(nèi)RPM包地址:
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
- cd /data/tools
- wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.0.3-ce.0.el7.x86_64.rpm
- rpm -ivh gitlab-ce-14.0.3-ce.0.el7.x86_64.rpm
安裝完成如下圖所示。

上圖提示:GitLab 無法檢測到實例的有效主機(jī)名,請通過設(shè)置 /etc/gitlab/gitlab.rb 文件中的“external_url”配置項為GitLab實例配置URL。
六、配置GitLab
1.修改gitlab.rb配置
## 設(shè)置 external_url ,綁定監(jiān)聽的域名或IP端口。若GitLab需通過公網(wǎng)訪問,最好配置域名加HTTPS;若是內(nèi)部網(wǎng)絡(luò)訪問,則可配置IP+端口,也可配置域名,用戶通過配置本地hosts解析訪問。
## 本文中為測試,使用IP+端口的方式,即 http://192.168.168.100:90。設(shè)置的端口不能被占用,默認(rèn)是80端口,如果80已經(jīng)使用,可自定義其它端口,并在防火墻設(shè)置開放相對應(yīng)的端口。
- vi /etc/gitlab/gitlab.rb

2.加載配置
- gitlab-ctl reconfigure
- //第一次配置時間較長,請耐心等待

注:①初始化默認(rèn)管理員帳戶的用戶名為 root ,密碼存儲在
/etc/gitlab/initial_root_password 文件中,此文件將在 24 小時后的第一次重新配置運行中清除。
②若非必要不建議做第二次初始化,后續(xù)若有修改配置文件使用命令 gitlab-ctl restart 重啟所有組件服務(wù)即可生效新的配置。
③先修改gitlab.rb文件中的“external_url”選項值,再使用“gitlab-ctl reconfigure”命令配置GitLab。就不需要在配置后修改 “
/var/opt/gitlab/gitlab-rails/etc/gitlab.yml ”文件中的“Web server settings”的值,如下圖:

以及不需要修改 “
/var/opt/gitlab/nginx/conf/gitlab-http.conf ”文件的“server”選項中的"listen"和“server_name”的值,如下圖:

七、測試訪問
## 查看初始化管理員帳戶密碼,密碼存儲在
/etc/gitlab/initial_root_password 文件中。本文中初始化管理員帳戶生成的密碼為:w8HgJZJd2+USFDwKxQWqRO2FWUQjE9UfBUFbLx3kfRM=

## 瀏覽器地址欄輸入:http://ip:port/,本文為http://192.168.168.100:90。服務(wù)器iptables防火墻已放開90端口。

## 輸入初始管理員賬戶: root 密碼:XGi+u+5Z3Nga/lLK+
fgpxTuTOADzHd9h9vWmquUU4cQ= ,登錄。

## 登錄成功后的首頁。

## 接下來就可以使用GitLab了,本文中不一一闡述。
八、修改管理員密碼
管理員帳戶root密碼是初始化默認(rèn)生成的,建議在首次登錄后進(jìn)行修改。
方法一:
## 點擊首頁左上角 "Menu" → “Admin” ,如下圖所示:

## 左側(cè)欄中 “Overview” → “Users”,會在右側(cè)頁面中顯示當(dāng)前用戶,新安裝部署的GitLab只有一個管理員帳戶,單擊管理員帳戶信息欄最后的 "Edit"。如下圖所示:

## 在編輯頁面的"Password"選項中輸入兩次新密碼,點擊頁面底部的"Save changes",保存更改。

方法二:
## 點擊首頁右上角管理員帳戶頭像 → “Edit profile” ,如下圖所示:

## 點擊左側(cè)欄中 “Password”,在右側(cè)頁面中輸入管理員帳戶當(dāng)前密碼、兩次新密碼,點擊“Save password”保存更改。如下圖所示:

方法三:
通過Rails 控制臺重置管理員帳戶密碼。
Rails 控制臺官方文檔:
https://docs.gitlab.com/ce/administration/operations/rails_console.html
登錄GitLab應(yīng)用所在的服務(wù)器,執(zhí)行下列命令:
## 對于使用YUM源或RPM包安裝的使用如下命令連接Rails 控制臺
- gitlab-rails console

## 使用如下命令完成重置密碼
- user = User.first
- //切換至超級管理員,id為1的是超級管理員
- user.password = 'yourNewpassword'
- //密碼至少8個字符,此處重置的新密碼為"yourNewpassword"
- user.save!
- //如無問題返回"true"

## 修改完成,輸入 quit 或 exit 退出Rails 控制臺。
方法四:
使用Rake Task重置管理員帳戶密碼。
官方文檔:
https://docs.gitlab.com/ce/security/reset_user_password.html
登錄GitLab應(yīng)用所在的服務(wù)器,執(zhí)行下列命令:
- gitlab-rake "gitlab:password:reset"
- //輸入管理員帳戶及兩次新密碼

九、GitLab常用命令
- ## 配置GitLab
- gitlab-ctl reconfigure
- ## 啟動所有 gitlab 組件
- gitlab-ctl start
- ## 停止所有 gitlab 組件
- gitlab-ctl stop
- ## 重啟所有 gitlab 組件
- gitlab-ctl restart
- ## 查看服務(wù)狀態(tài)
- gitlab-ctl status
- ## 檢查GitLab
- gitlab-rake gitlab:check SANITIZE=true --trace
- ## 查看日志
- gitlab-ctl tail
【編輯推薦】