git 乾貨系列:(六)公司內部搭建 git 伺服器

嘟嘟MD發表於2017-06-03

原本地址:git乾貨系列:(六)公司內部搭建git伺服器
部落格地址:tengj.top/

前言


因為gitHub上的專案是公開的,不適合公司內部專案放在上面,而私人的需要收費,這絕非是我們願意的。所以找了個跟gitHub很相似,但是又免費的gitLab。現在將搭建gitLab過程記錄一下留作參考。

正文


gitLab介紹


GitLab是利用 Ruby on Rails 一個開源的版本管理系統,實現一個自託管的Git專案倉庫,可通過Web介面進行訪問公開的或者私人專案。它擁有與Github類似的功能,能夠瀏覽原始碼,管理缺陷和註釋。可以管理團隊對倉庫的訪問,它非常易於瀏覽提交過的版本並提供一個檔案歷史庫。團隊成員可以利用內建的簡單聊天程式(Wall)進行交流。它還提供一個程式碼片段收集功能可以輕鬆實現程式碼複用,便於日後有需要的時候進行查詢。

依賴元件:ruby 1.9.3+,MySQL,git,redis, Sidekiq。
最低配置CPU 1G,RAM 1G+swap可以支援100使用者。

先連線SSH


首先要確定ubuntu上安裝並且啟動了ssh服務,然後還要確保linux系統上的防火牆要關閉,win8的防火牆可以正常開啟
SSH(模擬終端工具有PUTTY,SecureCRT 以及Fterm等)可以google下載的了.
步驟:
1, 有人說首先要在Virtual Network EditorNAT的埠對映,其實是不需要的;

ps -e|grep ssh複製程式碼

如果結果中只有ssh-agent,那說明ssh-server還沒有啟動,一般ubuntu是預設安裝ssh的,要是沒有安裝,可以通過

sudo apt-get install openssh-server複製程式碼

安裝ssh服務

sudo /etc/init.d/ssh start複製程式碼

啟動ssh服務

初始化root密碼


ubuntn剛安裝時候root還沒有密碼,設定一個,使用命令

sudo passwd複製程式碼

git 乾貨系列:(六)公司內部搭建 git 伺服器

安裝gitlib整合包


官方有安裝包與指令碼下載,官方安裝指南。同樣GITHUB上有個社群非官方的安裝指南
但這兒裡推薦bitnami下載打包安裝版本 bitnami.com/stack/gitla… ,省去很多時間。他們也提供相關WIKI
ubuntu為演示環境,來安裝這個包,切換到root賬戶, 在終端執行:
如果沒有許可權,先授權賬號:

chmod 777 bitnami-gitlab-8.5.7-0-linux-x64-installer.run複製程式碼

然後切換root使用者執行:

./bitnami-gitlab-8.5.7-0-linux-x64-installer.run複製程式碼

執行後就會彈出圖形化介面,一步步確認就行,如下圖

git 乾貨系列:(六)公司內部搭建 git 伺服器

git 乾貨系列:(六)公司內部搭建 git 伺服器

git 乾貨系列:(六)公司內部搭建 git 伺服器

git 乾貨系列:(六)公司內部搭建 git 伺服器

git 乾貨系列:(六)公司內部搭建 git 伺服器

git 乾貨系列:(六)公司內部搭建 git 伺服器

啟動命令


第一次安裝好了就預設啟動了gitlab,如果要手動啟動的話有兩種辦法
1.找到安裝好的路徑/opt/gitlab-8.5.7-0
需要root許可權執行命令:

sudo ./ctlscript.sh start複製程式碼

git 乾貨系列:(六)公司內部搭建 git 伺服器

2.也可以檢視GUI管理控制檯,在Manage Servers中選擇Start All啟動所有

sudo ./manager-linux-x64.run複製程式碼

git 乾貨系列:(六)公司內部搭建 git 伺服器

登陸系統


啟動後,就可以訪問系統頁面了,這裡先通過ifconfig命令獲取當前的ip地址

git 乾貨系列:(六)公司內部搭建 git 伺服器

我的是192.168.153.128,於是就可以在外面window系統瀏覽器訪問

http://192.168.153.128/users/sign_in

git 乾貨系列:(六)公司內部搭建 git 伺服器

使用我之前配置的git登陸,我之前安裝的時候配置的管理員賬號是git,密碼12345678,
這裡我登陸後發現跳轉到404頁面,把地址http://192.168.153.128/users/sign_in
後面的users/sign_in刪掉回車就行,就去後介面如下:

git 乾貨系列:(六)公司內部搭建 git 伺服器

git 乾貨系列:(六)公司內部搭建 git 伺服器

建立專案前的設定


如果你是自己一個人玩就直接建立專案即可,因為我這邊是給團隊使用的,所以需要建立一下使用者組,以及新增組成員,配置許可權等,下面來介紹這些配置

配置伺服器郵件


新增人員或者自己註冊的時候需要發郵件啟用,所以要先配置伺服器,我在bitnami提供的wiki裡面找到了辦法,原文如下:

How to configure the email settings of GitLab?
You can configure the SMTP settings during the installation process. If you are using the Virtual Machine or AMI, you can configure it manually. For example, these are the options to configure it using a GMail account:
/opt/bitnami/apps/gitlab/htdocs/config/environments/production.rb

config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp   
config.action_mailer.perform_deliveries = true
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "gmail.com",
:authentication => :plain,
:user_name => "your_account@gmail.com",
:,password => "your_password",
:enable_starttls_auto => true 
}複製程式碼

簡單的說就是修改/opt/bitnami/apps/gitlab/htdocs/config/environments/production.rb檔案,裡面的內容,addressdomainuser_namepassword這幾個配置成你自己的郵箱,記得你的郵箱必須要支援smtpport埠我預設也是587,不需要修改。
配置好了郵箱,就要測試一下,我們在http://192.168.153.128/users/sign_in 首頁,註冊一個額使用者,然後我收到郵件啟用,然後就可以登陸系統了。

git 乾貨系列:(六)公司內部搭建 git 伺服器

git 乾貨系列:(六)公司內部搭建 git 伺服器

git 乾貨系列:(六)公司內部搭建 git 伺服器

可以看到,非管理員登陸右上角就沒有Admin Area功能

建立小組,新增組內成員


讓組內成員自己註冊賬號啟用後,我們就準備建立小組了,建立小組是為了方便管理,建立專案的時候直接指定小組,這樣小組內的成員都可以看到專案

git 乾貨系列:(六)公司內部搭建 git 伺服器

git 乾貨系列:(六)公司內部搭建 git 伺服器

git 乾貨系列:(六)公司內部搭建 git 伺服器

git 乾貨系列:(六)公司內部搭建 git 伺服器

新增專案


小組建立好了就可以新增一個專案了,這裡建立的時候選擇edw這個建立好的小組,並且專案宣稱private私有專案。這樣只有小組內的成員可以下載這個專案

git 乾貨系列:(六)公司內部搭建 git 伺服器

git 乾貨系列:(六)公司內部搭建 git 伺服器

git 乾貨系列:(六)公司內部搭建 git 伺服器

配置SSH key


這裡切換到tengj使用者登陸,發現已經有了springmvctouchbaidu專案

git 乾貨系列:(六)公司內部搭建 git 伺服器

但是要下載到本地還需要配置SSH key,複製我們本地\.ssh\id_rsa.pub的內容黏貼到下面圖中指定的即可。

git 乾貨系列:(六)公司內部搭建 git 伺服器

遠端下載專案


這裡模擬tengj下載遠端專案,在這之前我已經用管理員賬號把專案傳上去了,如圖

git 乾貨系列:(六)公司內部搭建 git 伺服器

指定一個目錄存放該專案,執行git clone命令:

$ git clone git@192.168.153.128:edw/springmvctouchbaidu.git
Cloning into 'springmvctouchbaidu'...
The authenticity of host '192.168.153.128 (192.168.153.128)' can't be established.
ECDSA key fingerprint is SHA256:1SgfW1DLmaZ9m/E82vVtWjBK1AaP+LMW5U4ng8nv6uE.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.153.128' (ECDSA) to the list of known hosts.
remote: 物件計數中: 339, 完成.
remote: 壓縮物件中: 100% (242/242), 完成.
remote: Total 339 (delta 68), reused 339 (delta 68)
Receiving objects: 100% (339/339), 12.97 MiB | 14.44 MiB/s, done.
Resolving deltas: 100% (68/68), done.
Checking connectivity... done.複製程式碼

搞定,下載下來了。

配置許可權


前面文章也說過,一般一個實際專案中master用來版本釋出,一般不在這個分支上開發,所以除了git管理員使用者可以提交程式碼到master外,其他組成員只能push程式碼到dev這個分支。
比如我新增tengj使用者的時候選擇的是Developer角色,只要在Protected Branches中這個勾不夠上就行了。這樣開發人員就無法push程式碼到master分支上。

git 乾貨系列:(六)公司內部搭建 git 伺服器

git 乾貨系列:(六)公司內部搭建 git 伺服器

下面模擬一下tengj使用者提交程式碼:

git 乾貨系列:(六)公司內部搭建 git 伺服器

總結


ok,花了三天時間終於搞定了,截圖還是蠻累人的哈哈,算是比較詳細的記錄了我這次安裝gitlab的過程,個人感覺比網路上的文章調理清晰多了。一開始查資料快累死了。希望對你有所幫助。


一直覺得自己寫的不是技術,而是情懷,一篇篇文章是自己這一路走來的痕跡。靠專業技能的成功是最具可複製性的,希望我的這條路能讓你少走彎路,希望我能幫你抹去知識的蒙塵,希望我能幫你理清知識的脈絡,希望未來技術之巔上有你也有我。

更多幹貨內容,盡在嘟爺java超神學堂(javaLearn),您不掃一下麼

git 乾貨系列:(六)公司內部搭建 git 伺服器

相關文章