新聞中心
Git工程開發(fā)實(shí)踐(七)——GitLab服務(wù)搭建
操作系統(tǒng):RHEL 7.3 WorkStation
創(chuàng)新互聯(lián)是工信部頒發(fā)資質(zhì)IDC服務(wù)器商,為用戶提供優(yōu)質(zhì)的雅安服務(wù)器托管服務(wù)
一、GitLab簡(jiǎn)介
1、GitLab簡(jiǎn)介
?GitLab是一個(gè)利用Ruby on Rails開發(fā)的開源版本管理系統(tǒng),是集代碼托管、測(cè)試、部署于一體的開源git倉庫管理軟件,可通過web界面來進(jìn)行訪問公開或私人項(xiàng)目。GitLab能夠?yàn)g覽代碼,管理缺陷和注釋,可以管理團(tuán)隊(duì)對(duì)倉庫的訪問,非常易于瀏覽提交過的版本,并提供一個(gè)文件歷史庫,是目前非常流行的研發(fā)版本控制系統(tǒng)。
Git:本地版本控制系統(tǒng)工具。
Github:全球最大在線代碼托管倉庫,https://github.com。
GitLab:支持在線代碼托管,支持私有代碼托管服務(wù)器部署。
2、GitLab的持續(xù)集成功能
Gitlab-CI是GitLab Continuous Integration(Gitlab持續(xù)集成)的簡(jiǎn)稱。
從Gitlab的8.0版本開始,gitlab就全面集成了Gitlab-CI,并且對(duì)所有項(xiàng)目默認(rèn)開啟。
在GitLab 8.0+提供了持續(xù)集成的功能,在GitLab中有個(gè)Runners的概念。
Runner一共有三種類型
1) 本地Runner
2) 普通的服務(wù)器上的Runner
3) 基于Docker的Runner
GitLab原理圖:
3、Gitlab的服務(wù)構(gòu)成
Nginx:靜態(tài)web服務(wù)器
gitlab-shell:用于處理Git命令和修改authorized keys列表
gitlab-workhorse: 輕量級(jí)的反向代理服務(wù)器
logrotate:日志文件管理工具
postgresql:數(shù)據(jù)庫
redis:緩存數(shù)據(jù)庫
sidekiq:用于在后臺(tái)執(zhí)行隊(duì)列任務(wù)(異步執(zhí)行)
unicorn:An HTTP server for Rack applications,GitLab Rails應(yīng)用是托管在這個(gè)服務(wù)器上面的
4、GitLab常用命令
Gitlab命令分為兩部分:通用命令和服務(wù)管理命令
語法:gitlab-ctl 命令參數(shù)
通用命令:
命令參數(shù)如下:
help:幫助
reconfigure:修改配置文件后,重新加載配置
show-config:查看所有服務(wù)配置文件信息
uninstall:卸載軟件
cleanse:刪除gitlab數(shù)據(jù),重新白手起家
服務(wù)管理命令:
start:啟動(dòng)所有服務(wù)
stop:關(guān)閉所有服務(wù)
restart:重啟所有服務(wù)
status:查看所有服務(wù)狀態(tài)
tail:查看日志信息
service-list:列舉所有啟動(dòng)服務(wù)
graceful-kill:平穩(wěn)停止一個(gè)服務(wù)
二、GitLab安裝配置
1、安裝配置GitLab相關(guān)依賴項(xiàng)
安裝依賴項(xiàng),配置防火墻開放HTTP和SSH服務(wù)
sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld
如果要使用Postfix來發(fā)送通知郵件,在Postfix安裝期間請(qǐng)選擇'Internet Site'。
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
也可以在GitLab安裝成功后,配置一個(gè)外部SMTP服務(wù)器。
2、添加GitLab package倉庫
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
3、安裝GitLab
sudo yum install gitlab-ce-10.7.3-ce.0.el7.x86_64
需要設(shè)置gitlab的域名,也可以使用ip地址。sudo EXTERNAL_URL="http://gitlab.example.com" yum install gitlab-ce?
完成后,修改文件/etc/gitlab/gitlab.rb,設(shè)置訪問url
4、GitLab配置
sudo gitlab-ctl reconfigure
初次配置GitLab會(huì)很慢,耐心等待。
加載完成后,開始啟動(dòng)Gitlab,GitLab默認(rèn)會(huì)占用80、8080和9090端口。
重啟gitlab服務(wù):sudo gitlab-ctl restart
安裝完成后第一次訪問web界面,系統(tǒng)會(huì)要求重置root賬戶新密碼。
使用root權(quán)限登錄服務(wù)器并啟動(dòng)Ruby on Rails 控制臺(tái)gitlab-rails console production
[root@localhost ~]# gitlab-rails console production
Loading production environment (Rails 4.2.8)
irb(main):001:0>
irb(main):001:0> user = User.where(id: 1).first
=> #
irb(main):002:0>user.password = 'secret_pass'
irb(main):002:0>user.password_confirmation = 'secret_pass'
irb(main):002:0>user.save
5、注冊(cè)用戶
注冊(cè)一個(gè)新用戶:
設(shè)置新注冊(cè)用戶的信息:
生成SSH公鑰:ssh-keygen -t rsa -C "[email protected]" -b 4096
生成的SSH公鑰保存在~/.ssh/id_rsa.pub文件中。
將id_rsa.pub文件中的全部?jī)?nèi)容拷貝到Key編輯框:
6、新建組
7、新建工程
當(dāng)前名稱:Git工程開發(fā)實(shí)踐(七)——GitLab服務(wù)搭建
鏈接地址:http://fisionsoft.com.cn/article/jcdeps.html