環(huán)境說明
系統(tǒng)CentOS:CentOS7
IP: 172.16.2.205
操作步驟
1.查看Linux系統(tǒng)版本確認(rèn)gitlab需要使用的安裝包類型
[root@localhost proc]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
本系統(tǒng)是CentOS 7,對應(yīng)官方教程地址:https://about.gitlab.com/installation/#centos-7
2.安裝 curl,policycoreutils-python,openssh-server服務(wù)
yum install -y curl policycoreutils-python openssh-server
3.啟動(dòng)sshd服務(wù),并激活開機(jī)啟動(dòng)
systemctl enable sshd
systemctl start sshd
4.防火墻允許http服務(wù)通過,如果防火墻沒有啟動(dòng)需要啟動(dòng)防火墻systemctl start firewalld
firewall-cmd --permanent --add-service=http
systemctl reload firewalld
systemctl start firewalld
5.安裝Postfix發(fā)送通知郵件,啟動(dòng)postfix服務(wù),并激活開機(jī)啟動(dòng)
yum install postfix
systemctl enable postfix
systemctl start postfix
6.獲取GitLab-ee(企業(yè)版·免費(fèi)試用)或Gitlab-ce(社區(qū)版·免費(fèi))軟件包yum源
企業(yè)版:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | bash
社區(qū)版:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash
curl命令執(zhí)行完成后,會(huì)在/etc/yum.repos.d目錄下生成 gitlab_gitlab-ee.repo 或
gitlab_gitlab-ce.repo文件
關(guān)于gitlab-ee和gitlab-ce,二者是基于同樣的核心代碼進(jìn)行開發(fā),只是gitlab-ee功能更強(qiáng)大,但需要付費(fèi)使用,有30天試用期。但試用期過后如果不付費(fèi),它就跟gitlab-ce功能是完全一樣的,只是需要付費(fèi)的功能無法再繼續(xù)使用而已,所以這兩個(gè)版本可以隨意選擇安裝,但如果將來有付費(fèi)的打算,直接安裝gitlab-ee版本是個(gè)有遠(yuǎn)見的選擇。當(dāng)然,即使不付費(fèi),gitlab-ee使用上和gitlab-ce沒有任何區(qū)別,所以接下來的操作我們就以安裝gitlab-ee為例進(jìn)行。
如果安裝gitlab-ce目前不需要使用國內(nèi)鏡像,如果是安裝gitlab-ee就需要用到國內(nèi)鏡像
7.修改gitlab_gitlab-ee.repo文件
把repo_gpgcheck屬性為0,以及baseurl屬性為清華大學(xué)的開源鏡像站地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ee/yum/el7
[gitlab_gitlab-ee]
name=gitlab_gitlab-ee
#baseurl=https://packages.gitlab.com/gitlab/gitlab-ee/el/7/$basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ee/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gitlab/gitlab-ee/gpgkey
https://packages.gitlab.com/gitlab/gitlab-ee/gpgkey/gitlab-gitlab-ee-3D645A26AB9FBD22.pub.gpg
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
[gitlab_gitlab-ee-source]
name=gitlab_gitlab-ee-source
#baseurl=https://packages.gitlab.com/gitlab/gitlab-ee/el/7/SRPMS
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ee/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gitlab/gitlab-ee/gpgkey
https://packages.gitlab.com/gitlab/gitlab-ee/gpgkey/gitlab-gitlab-ee-3D645A26AB9FBD22.pub.gpg
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
修改完成后再刷新yum源:
yum clean all
yum yum makecache
注意事項(xiàng)以及該文件關(guān)鍵鍵的介紹:
1.gitlab_gitlab-ee和gitlab_gitlab-ee-source對應(yīng)的地址都要換
2.name是倉庫的名字
3.baseurl字段是倉庫的url,也就是倉庫具體的訪問路徑,就是通過這個(gè)選項(xiàng)告知yum,倉庫在哪。這里可以指明多個(gè)url,如果寫了多個(gè)url,yum將遵循failovermethod字段進(jìn)行使用
4.enabled字段指明了該url是否啟用,0為不啟用,默認(rèn)為1
5.gpgcheck字段指明了是否檢查rpm包的簽名信息、完整性信息,0為不啟用,1為啟用
(注意:如果啟用這個(gè)字段,也就是為1時(shí),如果沒有g(shù)pgkey時(shí),檢查很可能無法通過。我們可以在命令行中使用-- nogpgcheck選項(xiàng)禁止檢查gpg)
6.repo_gpgcheck指明了是否檢查元數(shù)據(jù)信息文件的簽名信息與完整性,0為不啟用,1為啟用
7.gpgkey=url指明了密鑰文件的url路徑,有了這個(gè)密鑰才能檢查各種完整信息。
8.由于gpgkey對應(yīng)的地址需要翻墻所以gpgcheck也需要設(shè)置為0,如果你服務(wù)器不需要翻墻可以不用使用默認(rèn)值1。
9.https://mirrors.tuna.tsinghua.edu.cn是國內(nèi)清華大學(xué)開源鏡像站,避免yum install可能會(huì)因?yàn)榫W(wǎng)絡(luò)原因?qū)е率 ?/p>
8.安裝gitlab-ee(最新版本)
EXTERNAL_URL地址是對應(yīng)的訪問你gitlab的地址
EXTERNAL_URL="http://172.16.2.205:8888/gitlab" yum install -y gitlab-ee
默認(rèn)安裝最新版本,如果需要安裝指定的版本,可以到清華大學(xué)開源鏡像站下載指定版本的rpm包。通過rmp -ivh gitlab-ee-10.6.2-ee.0.el7.x86_64.rpm 進(jìn)行安裝,注意同樣需要先安裝yum install policycoreutils-python,openssh-server postfix -y 服務(wù)。
當(dāng)看到一個(gè)由符合組成一張gitlab的圖片的時(shí)候就是安裝成功了。
9.添加8888和8887端口,并修改gitlab默認(rèn)訪問端口
添加端口
firewall-cmd --zone=public --add-port=8888/tcp --permanent
firewall-cmd --zone=public --add-port=8887/tcp --permanent
firewall-cmd --reload
gitlab默認(rèn)是80端口,如果存在端口沖突,需要修改端口,如果不存在端口沖突,則不需要。
修改默認(rèn)端口:需要放開/etc/gitlab/gitlab.rb文件里面nginx['listen_port']和nicorn['port']注釋并設(shè)置端口,兩個(gè)端口不能相同.具體原因筆者暫時(shí)也搞不懂,沒用過nginx。
nginx['listen_port'] = 8888
unicorn['port'] = 8887
刷新gitlab配置和啟動(dòng)
gitlab-ctl reconfigure
gitlab-ctl restart
10.啟動(dòng)gitlab服務(wù)
gitlab-ctl start
gitlab默認(rèn)端口為80,筆者這邊安裝的時(shí)候設(shè)置訪問地址為http://172.16.2.205:8888/gitlab,第一次訪問會(huì)要你重置root用戶的密碼,設(shè)置完密碼,然后登錄,就到以前熟悉的gitlab界面了。
[圖片上傳失敗...(image-ae6fca-1542608435808)]
啟動(dòng)過程有點(diǎn)慢,訪問的時(shí)候可能出現(xiàn)502超時(shí)請求,稍等一會(huì)就好了,如果等了很久還是502,就得考慮一下是不是端口占用問題
安裝過程可能出現(xiàn)問題和修復(fù)方法:
1.1502 Whoops, GitLab is taking too much time to respond
解決方案:
修改默認(rèn)端口:需要放開/etc/gitlab/gitlab.rb文件里面nginx['listen_port']和nicorn['port']注釋并設(shè)置端口,兩個(gè)端口不能相同.具體原因筆者暫時(shí)也搞不懂,沒用過nginx。
nginx['listen_port'] = 8888
unicorn['port'] = 8887
刷新gitlab配置和啟動(dòng)
gitlab-ctl reconfigure
gitlab-ctl restart
##### 2.出現(xiàn)ruby_block[supervise_redis_sleep] action run停留很久
在卸載gitlab然后再次安裝執(zhí)行 gitlab-ctlreconfigure的時(shí)候往往會(huì)出現(xiàn):ruby_block[supervise_redis_sleep] action run,會(huì)一直卡無法往下進(jìn)行!
解決方案:
1、按住CTRL+C強(qiáng)制結(jié)束;
2、運(yùn)行:sudo systemctl restart gitlab-runsvdir;
3、再次執(zhí)行:sudo gitlab-ctl reconfigure