前言
因為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 Editor
做NAT
的端口映射,其實是不需要的;
1 |
ps -e|grep ssh |
如果結果中只有ssh-agent
,那說明ssh-server
還沒有啟動,一般ubuntu
是默認安裝ssh
的,要是沒有安裝,可以通過
1 |
sudo apt-get install openssh-server |
安裝ssh服務
1 |
sudo /etc/init.d/ssh start |
啟動ssh服務
初始化root密碼
ubuntn
剛安裝時候root
還沒有密碼,設置一個,使用命令
1 |
sudo passwd |
安裝gitlib整合包
官方有安裝包與腳本下載,官方安裝指南。同樣GITHUB上有個社區非官方的安裝指南。
但這兒里推薦bitnami
下載打包安裝版本 https://bitnami.com/stack/gitlab/installer,省去很多時間。他們也提供相關WIKI
以ubuntu為演示環境,來安裝這個包,切換到root
賬戶, 在終端運行:
如果沒有權限,先授權賬號:
1 |
chmod 777 bitnami-gitlab-8.5.7-0-linux-x64-installer.run |
然后切換root
用戶執行:
1 |
./bitnami-gitlab-8.5.7-0-linux-x64-installer.run |
啟動命令
第一次安裝好了就默認啟動了gitlab
,如果要手動啟動的話有兩種辦法
1.找到安裝好的路徑/opt/gitlab-8.5.7-0
需要root
權限執行命令:
1 |
sudo ./ctlscript.sh start |
登陸系統
啟動后,就可以訪問系統頁面了,這里先通過ifconfig命令獲取當前的ip地址
我的是192.168.153.128
,於是就可以在外面window
系統瀏覽器訪問
http://192.168.153.128/users/sign_in
使用我之前配置的git
登陸,我之前安裝的時候配置的管理員賬號是git
,密碼12345678,
這里我登陸后發現跳轉到404
頁面,把地址http://192.168.153.128/users/sign_in
后面的users/sign_in
刪掉回車就行,就去后界面如下:
創建項目前的設置
如果你是自己一個人玩就直接創建項目即可,因為我這邊是給團隊使用的,所以需要創建一下用戶組,以及添加組成員,配置權限等,下面來介紹這些配置
配置服務器郵件
添加人員或者自己注冊的時候需要發郵件激活,所以要先配置服務器,我在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
1
2
3
4
5
6
7
8
9
10
11
12config.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
文件,里面的內容,address
,domain
,user_name
,password
這幾個配置成你自己的郵箱,記得你的郵箱必須要支持smtp
。port
端口我默認也是587,不需要修改。
配置好了郵箱,就要測試一下,我們在http://192.168.153.128/users/sign_in
首頁,注冊一個額用戶,然后我收到郵件激活,然后就可以登陸系統了。
可以看到,非管理員登陸右上角就沒有Admin Area
功能
創建小組,添加組內成員
讓組內成員自己注冊賬號激活后,我們就准備創建小組了,創建小組是為了方便管理,創建項目的時候直接指定小組,這樣小組內的成員都可以看到項目
新增項目
小組創建好了就可以新增一個項目了,這里創建的時候選擇edw
這個創建好的小組,並且項目宣稱private
私有項目。這樣只有小組內的成員可以下載這個項目
配置SSH key
這里切換到tengj
用戶登陸,發現已經有了springmvctouchbaidu
項目
但是要下載到本地還需要配置SSH key
,復制我們本地\.ssh\id_rsa.pub
的內容黏貼到下面圖中指定的即可。
遠程下載項目
這里模擬tengj
下載遠程項目,在這之前我已經用管理員賬號把項目傳上去了,如圖
指定一個目錄存放該項目,執行git clone
命令:
1 |
$ git clone git@192.168.153.128:edw/springmvctouchbaidu.git |
搞定,下載下來了。
配置權限
前面文章也說過,一般一個實際項目中master
用來版本發布,一般不在這個分支上開發,所以除了git
管理員用戶可以提交代碼到master
外,其他組成員只能push
代碼到dev
這個分支。
比如我添加tengj
用戶的時候選擇的是Developer
角色,只要在Protected Branches
中這個勾不夠上就行了。這樣開發人員就無法push
代碼到master
分支上。
下面模擬一下tengj用戶提交代碼:
總結
ok,花了三天時間終於搞定了,截圖還是蠻累人的哈哈,算是比較詳細的記錄了我這次安裝gitlab
的過程,個人感覺比網絡上的文章調理清晰多了。一開始查資料快累死了。希望對你有所幫助。
原文: http://tengj.top/2016/03/29/git6gitlab/ 作者: 嘟嘟MD