GitLab簡介
GitLab是利用Ruby On Rails開發的一個開源版本管理系統,實現了一個自託管的Git項目倉庫,是集代碼託管,測試,部署於一體的開源git倉庫管理軟件,可通過web界面來進行訪問公開的或私人項目。與Github類似,GitLab能夠瀏覽代碼,管理缺陷和註釋。可以管理團隊對倉庫的訪問,它非常易於瀏覽提交過的版本,並提供一個文件歷史庫。它還提供一個代碼片段收集功能可以輕鬆實現代碼複用,便於日後需要的時候查找。
Git的家族成員:
Git:是一種版本控制系統,是一個命令,是一種工具。
Gitlib:是用於實現Git功能的開發庫。
Github:是一個基於Git實現的在線代碼託管倉庫,公開項目是免費的,也可以付費創建私人項目。
GitLab:是一個基於Git實現的在線代碼倉庫託管軟件,可以用GitLab搭建一套類似Github的系統。
GitLab對硬件還是有一定要求的,1核心的CPU基本上可以滿足需求,大概支撐100個左右的用戶,不過在運行GitLab網站的同時還需要運行多個後臺job,就會顯得有點捉襟見肘了。需要至少4GB的可尋址內存(RAM交換)來安裝和使用GitLab,操作系統和任何其他正在運行的應用程序也將使用內存,因此請記住,在運行GitLab之前,您至少需要4GB的可用空間,如果使用更少的內存,GitLab將在重新配置運行期間給出奇怪的錯誤。
一、環境準備
CPU:2核
內存:4G
說明:硬件根據我查到的資料( https://docs.gitlab.com/ce/install/requirements.html ),結合使用人數的考慮,故選擇了2核4G的配置,實際配置時需要根據gitlab使用人數的負載來決定硬件配置。
1.1更新yum源
yum install wget #下載wget mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak #備份yum源 wget -O /etc/yum.repo.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo #下載yum源 yum clean all && yum makecache #更新yum源
二、獲取gitlab漢化包
說明:gitlab中文社區版的項目,v7-v8.8是由Larry Li發起的“GitLab 中文社區版項目”(https://gitlab.com/larryli/gitlab),從 v8.9 之後,@xhang 開始繼續該漢化項目(https://gitlab.com/xhang/gitlab)。
yum install -y git
2.1 克隆獲取漢化版本庫
下載最新的漢化包(漢化包需與安裝的Gitlab版本一致)
git clone https://gitlab.com/xhang/gitlab.git
如果是要下載指定版本的漢化包,需要加上指定版本的分支,比如我想下載11.5.6,可以運行下面的語句
git clone https://gitlab.com/xhang/gitlab.git -b v11.5.3版本的-zh
本次下載使用的是11.5.3
2.2 查看該漢化補丁的版本
cat gitlab/VERSION
可以看到現在的版本是11.5.3
三、部署社區版Gitlab
3.1安裝前準備選項
yum install -y curl openssh-server openssh-clients postfix cronie policycoreutils-python #10.x以後開始依賴policycoreutils-python,我之前在使用9.x時還沒有依賴該項。
啓動postfix,並設置爲開機啓動
systemctl start postfix systemctl enable postfix
設置防火牆 ,也可以直接關閉
firewall-cmd --add-service=http --permanent firewall-cmd --reload
3.2獲取Gitlab的rpm包
https://mirrors .tuna.tsinghua.edu.cn /gitlab-ce/yum/el7/
獲取rpm包
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.5.3-ce.0.el7.x86_64.rpm
當然也可以使用官方的網址進行下載,速度可能會很慢
官方下載:https://packages.gitlab.com/gitlab/gitlab-ce/
3.3安裝RPM包
rpm -ivh gitlab-ce-11.5.3-ce.0.el7.x86_64.rpm
根據提示,繼續執行指令配置gitlab。
gitlab-ctl reconfigure
3.5修改配置文件gitlab.rb
vim /etc/gitlab/gitlab.rb
將external_url變量的地址修改爲gitlab所在CentOS的ip地址。(有域名的話可以配成域名)。
3.6 配置郵箱
vim /etc/gitlab/gitlab.rb 郵箱配置: gitlab_rails[ 'smtp_enable' ] = true gitlab_rails[' smtp_address '] = " smtp.mxhichina.com " gitlab_rails[' smtp_port '] = 465 gitlab_rails[' smtp_user_name '] = " xxxxxxxxx" gitlab_rails[' smtp_password '] = " xxxxxxxx " gitlab_rails[' smtp_authentication '] = " login " gitlab_rails[' smtp_enable_starttls_auto '] = true gitlab_rails[' smtp_tls '] = true gitlab_rails[' gitlab_email_from '] = ' xxxxxxxxx '
gitlab-ctl reconfigure gitlab-ctl restart
3.7 查看Gitlab版本
head -1 /opt/gitlab/version-manifest.txt
四、覆蓋漢化包
注:漢化後使用root用戶登錄可能會出現漢化不完全現象,創建其他用戶後使用非root用戶登錄即可正常顯示
停止Gitlab服務
gitlab-ctl stop
切換到Gitlab漢化包所在的目錄(即步驟二獲取的漢化版Gitlab)
cd /root/gitlab
比較漢化標籤和原標籤,導出 patch 用的 diff 文件到/root下
git diff v11.5.3 v11.5.3-zh > ../11.5.3-zh.diff
回到/root目錄
cd
將11.5.3-zh.diff作爲補丁更新到Gitlab中
yum install patch -y patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < 11.5.3-zh.diff
啓動Gitlab
gitlab-ctl start
重新配置並重啓Gitlab
gitlab-ctl reconfigure gitlab-ctl restart
還有一種簡單的運用中文補丁的方式,首先關閉服務
gitlab-ctl stop
複製漢化包內容至Gitlab目錄內覆蓋
cp -rf gitlab /* /opt/gitlab/embedded/service/gitlab-rails/
複製可能出現如下提示,可以不用理會。
重新配置並重啓Gitlab
gitlab-ctl reconfigure gitlab-ctl restart
五、設置管理員密碼
(雖然登錄後管理員的用戶名爲Administrator,但是實際登錄的用戶名是root)
瀏覽器訪問gitlab所在的ip,輸入密碼後點擊 “Change your password”(如果進行漢化,點擊“修改密碼”)。
六、修改默認端口
有時,需要修改默認端口,保證不與服務器其他端口相沖突
6.1 修改 nginx 端口 (默認80,與其他端口衝突時修改)
vim /etc/gitlab/gitlab.rb
按照如下修改
nginx['listen_port'] = 8081 vim /var/opt/gitlab/nginx/conf/gitlab-http.conf server { listen *:8081; . . . if ($http_host = "") { set $http_host_with_default "192.168.99.65:8081"; }
6.2 修改 unicorn 端口 (默認8080,可能會與Tomcat端口衝突,衝突時修改)
vim /etc/gitlab/gitlab.rb unicorn['port'] = 8089 vim /var/opt/gitlab/gitlab-rails/etc/unicorn.rb listen "127.0.0.1:8089", :tcp_nopush => true
gitlab-ctl reconfigure gitlab-ctl restart
注:重啓服務有延時,unicorn 端口需要耐心等待一會才能被監聽
netstat -tunlp
七、GitLab的命令
gitlab-ctl command (subcommand)
Service Management Commands | |
start | 啓動所有服務 |
stop | 關閉所有服務 |
restart | 重啓所有服務 |
status | 查看所有服務狀態 |
tail | 查看日誌信息 |
service-list | 列舉所有啓動服務 |
graceful-kill | 平穩停止一個服務 |
1 2 3 4 5 6 7 8 9 10 11 | #啓動所有服務 [root@gitlab ~] # gitlab-ctl start
#啓動單獨一個服務 [root@gitlab ~] # gitlab-ctl start nginx
#查看日誌,查看所有日誌 [root@gitlab ~] # gitlab-ctl tail
#查看具體一個日誌,類似tail -f [root@gitlab ~] # gitlab-ctl tail nginx | |
General Commands | ||
help | 幫助 | |
reconfigure | 修改配置文件之後,需要重新加載下 | |
show-config | 查看所有服務配置文件信息 | |
uninstall | 卸載這個軟件 | |
cleanse | 刪除gitlab數據,重新白手起家 | |
gitlab-ctl show-config #顯示所有服務配置文件 gitlab-ctl uninstall #卸載gitlab