閱讀239 返回首頁    go 阿裏雲 go 技術社區[雲棲]


雲服務器 ECS 建站教程:GitLab的安裝及使用




前言

GitLab是利用 Ruby on Rails 一個開源的版本管理係統,實現一個自托管的Git項目倉庫,可通過Web界麵進行訪問公開的或者私人項目。

它擁有與Github類似的功能,能夠瀏覽源代碼,管理缺陷和注釋。可以管理團隊對倉庫的訪問,它非常易於瀏覽提交過的版本並提供一個文件曆史庫。

團隊成員可以利用內置的簡單聊天程序(Wall)進行交流。

它還提供一個代碼片段收集功能可以輕鬆實現代碼複用,便於日後有需要的時候進行查找。

Git的家族成員

Git:是一種版本控製係統,是一個命令,是一種工具。

Gitlib:是用於實現Git功能的開發庫。

Github:是一個基於Git實現的在線代碼托管倉庫,包含一個網站界麵,向互聯網開放。

GitLab:是一個基於Git實現的在線代碼倉庫托管軟件,你可以用gitlab自己搭建一個類似於Github一樣的係統,一般用於在企業、學校等內部網絡搭建git私服。

Gitlab的服務構成

Nginx:靜態web服務器。

gitlab-shell:用於處理Git命令和修改authorized keys列表。

gitlab-workhorse:輕量級的反向代理服務器。

logrotate:日誌文件管理工具。

postgresql:數據庫。

redis:緩存數據庫。

sidekiq:用於在後台執行隊列任務(異步執行)。

unicorn:An HTTP server for Rack applications,GitLab Rails應用是托管在這個服務器上麵的。

GitLab工作流程


image


GitLab Shell

GitLab Shell有兩個作用:為GitLab處理Git命令、修改authorized keys列表。

當通過SSH訪問GitLab Server時,GitLab Shell會:

限製執行預定義好的Git命令(git push, git pull, git annex)

調用GitLab Rails API 檢查權限

執行pre-receive鉤子(在GitLab企業版中叫做Git鉤子)

執行你請求的動作 處理GitLab的post-receive動作

處理自定義的post-receive動作

當通過http(s)訪問GitLab Server時,工作流程取決於你是從Git倉庫拉取(pull)代碼還是向git倉庫推送(push)代碼。

如果你是從Git倉庫拉取(pull)代碼,GitLab Rails應用會全權負責處理用戶鑒權和執行Git命令的工作;

如果你是向Git倉庫推送(push)代碼,GitLab Rails應用既不會進行用戶鑒權也不會執行Git命令,它會把以下工作交由GitLab Shell進行處理:

調用GitLab Rails API 檢查權限
執行pre-receive鉤子(在GitLab企業版中叫做Git鉤子)
執行你請求的動作
處理GitLab的post-receive動作
處理自定義的post-receive動作

GitLab Workhorse

GitLab Workhorse是一個敏捷的反向代理。它會處理一些大的HTTP請求,比如文件上傳、文件下載、Git push/pull和Git包下載。其它請求會反向代理到GitLab Rails應用,即反向代理給後端的unicorn。

Gitlab環境部署

ECS配置要求:內存2G以上

方法一:鏡像部署

鏡像名稱:GitLab代碼管理(Centos 64位 | GitLab) | 鏡像幫助文檔

進入鏡像詳情頁麵,單擊立即購買,按提示步驟購買 ECS 實例。

購買完成之後,登錄”ECS 管理控製台”,在左邊導航欄裏,單擊”實例”,進入 ECS 實例列表頁,選擇所購 ECS 實例所在的地域,並找到所購 ECS 實例,在”IP 地址”列獲取該實例的公網 IP 地址。

注意:鏡像部署好後默認是禁止遠端訪問的,所以直接訪問ECS服務器的公網IP是不能訪問到GitLab的登錄界麵的,請先運行/alidata目錄下的gitlab_opennet.sh腳本,開啟遠程訪問,然後再通過瀏覽器訪問公網IP來訪問GitLab的主頁。

方法二:手動部署:

1、配置yum源

vim /etc/yum.repos.d/gitlab-ce.repo

複製以下內容:

[gitlab-ce]
name=gitlab-ce
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6
Repo_gpgcheck=0
Enabled=1
Gpgkey=https://packages.gitlab.com/gpg.key


image


2、更新本地yum緩存

sudo yum makecache


image


3、安裝GitLab社區版

sudo yum intall gitlab-ce        #自動安裝最新版
sudo yum install gitlab-ce-x.x.x    #安裝指定版本


image


GitLab常用命令:

sudo gitlab-ctl start    # 啟動所有 gitlab 組件;
sudo gitlab-ctl stop        # 停止所有 gitlab 組件;
sudo gitlab-ctl restart        # 重啟所有 gitlab 組件;
sudo gitlab-ctl status        # 查看服務狀態;
sudo gitlab-ctl reconfigure        # 啟動服務;
sudo vim /etc/gitlab/gitlab.rb        # 修改默認的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace    # 檢查gitlab;
sudo gitlab-ctl tail        # 查看日誌;

GitLab使用

登錄GitLab

1、在瀏覽器的地址欄中輸入ECS服務器的公網IP即可登錄GitLab的界麵,第一次登錄使用的用戶名和密碼為 root 和 5iveL!fe。


image


2、首次登錄會強製用戶修改密碼。密碼修改成功後,輸入新密碼進行登錄。


image
image


創建Project

1、安裝Git工具linux:安裝Git,使用自帶的源安裝。

yum install git


image


2、生成密鑰文件

使用ssh-keygen生成密鑰文件.ssh/id_rsa.pub。


image
image


3.在GitLab的主頁中新建一個Project


image
image


4.添加ssh key導入步驟2中生成的密鑰文件內容:


image
image

ssh key添加完成:

image


項目地址,該地址在進行clone操作時需要用到:


image


簡單配置

1、配置使用Git倉庫的人員姓名

git config --global user.name "上海駐雲"    

2、配置使用Git倉庫的人員email,填寫自己的公司郵箱

git config --global user.email "support@jiagouyun.com" 

3、克隆項目,在本地生成同名目錄,並且目錄中會有所有的項目文件

git clone git@iZbp1h7fx16gkr9u4gk8v3Z:root/test.git


image

上傳文件

1、進入到項目目錄

cd test/ 

2、創建需要上傳到GitLab中的目標文件

echo “test” >  /root/test.sh

3、將目標文件或者目錄拷貝到項目目錄下

cp /root/test.sh ./    


image


4、將test.sh文件加入到索引中

git add test.sh 

5、將test.sh提交到本地倉庫

git commit -m “test.sh”

6、將文件同步到GitLab服務器上

git push -u origin master 


image

7、在網頁中查看上傳的test.sh文件已經同步到GitLab中

image

原文鏈接

最後更新:2017-08-13 22:28:44

  上一篇:go  人工智能進行臨床診斷,目前還不夠準確
  下一篇:go  雲服務器 ECS 建站教程:Discuz安裝教程