1. 程式人生 > >Git和Gitlab協同工作

Git和Gitlab協同工作

開發十年,就只剩下這套架構體系了! >>>   

1.概述

  在寫這篇部落格之前,為了更好的描述整個流程,本人親自嘗試了:從搭建到使用,下面就圍繞這個流程來闡述整個過程,目錄結構如下所示:

  1. Git的安裝搭建
  2. Git的常規操作
  3. Gitlab的搭建
  4. Gitlab的使用

  下面我們開始整個流程。

2.Git篇

  其實,作為開發人員,Git的使用是必備的技能,也許我們都很熟悉如何使用Git,對Git的常用命令也瞭如指掌;但是對Git伺服器的搭建也許我們並不太在意,因為這些事情自從我們進入公司,運維人員就已經幫我們做好來,我們只需要知道如何去使用(拉去程式碼,提交程式碼)。但是如果有一天,你去來一家打算使用Git來作為程式碼管理器的公司,要求你來搭建這個程式碼管理平臺,也許你會碰很多壁,下面給出我搭建的流程,也許能為您節省很多不必要的麻煩,保證您一次搭建成功。

2.1Git伺服器搭建

環境準備:

  • 系統環境:CentOS 6.x
  • 軟體版本:git-2.3.1.tar.gz
  • 下載地址:https://www.kernel.org/pub/software/scm/git/

編譯Git版本:

  首先安裝依賴(以下都是在root目錄下完成):

  

yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel 
tar -zxvf git-2.3.1.tar.gz
cd git-2.3.1
make prefix=/usr/local all 
make prefix=/usr/local install #root使用者執行

  注:編譯時如果作業系統沒有安裝gcc,使用yum –y install gcc*

  另外,如果直接使用yum –y install git安裝的版本比較舊(1.7.x),安裝完成後輸入git --version,會顯示對應的版本號,若現實的版本號不對(之前作業系統存在git),可以先解除安裝之前的版本,然後做一個軟連結,命令如下:

ln –s /usr/local/bin/git /usr/bin/

2.2建立Git使用者

  下面建立Git使用者,命令如下所示:

useradd git –d /home/git

2.3在Git使用者下安裝SSH

  在Git使用者下安裝SSH,命令如下所示:

ssh-keygen –t rsa

  然後一路回車即可。

2.4安裝Gitolite

  這是一款Git服務管理工具,通過公鑰對使用者進行認證,並能夠利用配置檔案進行repo的精細授權管理。 輸入以下命令:

git clone git://github.com/sitaramc/gitolite
mkdir -p ~/bin
gitolite/install -to ~/bin
gitolite setup -pk ~/.ssh/id_rsa.pub

  出現如下圖所示,即表示成功。

2.5新增開發者

  由於手上機器有限,我將許可權配置和Git 倉庫配置在同一臺機器上,在前面我們添加了Git使用者下的公鑰,下面在Git賬戶下直接輸入如下命令:

git clone [email protected]: gitolite-admin.git

  注:這裡的git.company.com在實際使用中可以換成公司域名或IP。

  如果在執行命令時,需要輸入密碼,說明前面某些配置出錯了,需要重新查證解決後在繼續。

  克隆完成後,會在gitolite-admin目錄下出現兩個子目錄:conf和keydir。conf是gitolite的許可權配置資料夾,keydir用於放置所有使用者的公鑰。所以,現在我們將guest.pub檔案(開發者電腦生成的公鑰)放入keydir目錄中,然後編輯conf/gitolite.conf,在檔案末尾新增新的repo和許可權。下面我們新增一個repo為hdfs-etl,擁有讀寫許可權。內容如下:

repo hdfs-etl
    RW+ = guest

  注:R(讀)W(寫)

  修改完成後,我們提交更改,完成使用者及其庫的新增,命令如下:

git add conf
git add keydir
git commit –m “add repo diexun-etl,give access dengjie”
git push

2.6操作repo

  下面我在guest的主機上克隆hdfs-etl的工程,命令如下:

git clone [email protected]: hdfs-etl.git

  如果在網路正常的情況下克隆失敗,說明公鑰新增未成功;若克隆成功,則會出現hdfs-etl的目錄。當然我們也可以檢視一下操作的許可權,命令如下:

ssh [email protected] info

  如下圖所示:

  如圖所示,我機上上擁有讀和寫的許可權,與配置的許可權一致。

2.7解除安裝

  任何地方使用ssh或git登入到git伺服器需要輸入密碼,都說明配置git伺服器出現錯誤,需要重新安裝gitolite,重新安裝前先清除之前的檔案,清除命令如下所示:

ls -a | grep gitolite | xargs rm –fr
rm -fr ~/repositories ~/bin  ~/projects.list ~/.ssh/authorized_keys

  到這裡Git篇就贅述完成了,至於Git 的常用操作,我想作為開發人員,應該是了熟於心,這裡我就不多贅述了。

3.Gitlab篇

  GitLab 是一個用於倉庫管理系統的開源專案。使用Git作為程式碼管理工具,並在此基礎上搭建起來的web服務,它集成了Github的視覺化功能,方便開發人員協同工作,下面我就圍繞Gitlab的搭建使用來展開描述。

3.1Gitlab搭建

環境準備:

  作業系統:CentOS 6.x

  Gitlab版本:7.8.1

  

  由於Gitlab官方給出的安裝過程難以成功(嘗試過很多次,各種出錯,環境只是一種工具,不應該花費太多的時間在這上面)。下面給出一個整合安裝工具包BitNami,關於BitNami的簡介,這裡不做贅述,可自行谷歌瞭解。

  bitnami-gitlab下載地址:https://downloads.bitnami.com/files/stacks/gitlab/7.8.1-0/bitnami-gitlab-7.8.1-0-linux-x64-installer.run

  下載完成後,我們開始安裝流程,命令如下:

chmod u+x bitnami-gitlab-7.8.1-0-linux-x64-installer.run
./bitnami-gitlab-7.8.1-0-linux-x64-installer.run

  注:機器記憶體至少1G,不然跑不起來。

  下面列出安裝流程:

複製程式碼

The installer detects that exists a 'git' user in the system. This installer will change the config                        
uration for this user. Do you want to continue the installation? [y/N]: y

The installer detects that exists a 'gitlab_ci' user in the system. This installer will change the                         
configuration for this user. Do you want to continue the installation? [y/N]: y

----------------------------------------------------------------------------
Welcome to the Bitnami Gitlab Stack Setup Wizard.

----------------------------------------------------------------------------
Select the components you want to install; clear the components you do not want
to install. Click Next when you are ready to continue.

GitLab : Y (Cannot be edited)

GitLab CI [Y/n] :Y

Is the selection above correct? [Y/n]: Y

----------------------------------------------------------------------------
Installation folder

Please, choose a folder to install Bitnami Gitlab Stack

Select a folder [/opt/gitlab-7.8.1-0]:

----------------------------------------------------------------------------
Create Admin account

Bitnami Gitlab Stack admin user creation

Email Address [[email protected]]: [email protected]

Login [user]: sa

Password :********
Please confirm your password :********
----------------------------------------------------------------------------
Hostname that will be used to create internal URLs. If this value is incorrect,
you may be unable to access your Gitlab installation from other computers. It is
advisable to use a Domain instead of an IP address for compatibility with
different browsers.

Domain [10.211.55.30]:

Do you want to configure mail support? [y/N]: y

----------------------------------------------------------------------------
Configure SMTP Settings

This is required so your application can send notifications via email.

Default email provider:

[1] GMail
[2] Custom
Please choose an option [1] : 1

----------------------------------------------------------------------------
Configure SMTP Settings

This data is stored in the application configuration files and may be visible to
others. For this reason, it is recommended that you do not use your personal
account credentials.

Username []: sa

Password :
Re-enter :

----------------------------------------------------------------------------
Setup is now ready to begin installing Bitnami Gitlab Stack on your computer.

Do you want to continue? [Y/n]: y

----------------------------------------------------------------------------
Please wait while Setup installs Bitnami Gitlab Stack on your computer.

 Installing
 0% ______________ 50% ______________ 100%
 #########################################

複製程式碼

  到這裡,Gitlab就安裝完成了。

3.2啟動服務

  命令如下:

/opt/gitlab-7.1.1-0/ctlscript.sh start #啟動
/opt/gitlab-7.1.1-0/ctlscript.sh restart #重啟
/opt/gitlab-7.1.1-0/ctlscript.sh stop #停止

4.Gitlab使用

  下面我們登入到Gitlab的視覺化介面,截圖如下:

 

  其實首次登入的時候,如果沒有在配置檔案中配置,是會有註冊功能的,這裡為了安全考慮,我以管理員的身份登入,然後在設定介面去掉了註冊功能。

  下面演示Gitlab使用流程:

  • 建立專案:

  其中需要注意: 如果屬於Group級的專案,也就是屬於多人配合的專案,建議Namespace使用Group name,另外Visibility預設為Internal。我們先建立一個組,如圖所示:

  這裡我們新增組所屬使用者,如圖所示:

  • 源倉庫的構建

  我們接下來按照步驟來建立一個自己的專案:

  按照以上提示的步驟操作,我們即可以建立或者匯入一個專案成功。

  到這裡,Gitlab的搭建和專案建立