本來地址:git乾貨系列:(六)公司內部搭建git服務器
博客地址:tengj.top/javascript
由於gitHub
上的項目是公開的,不適合公司內部項目放在上面,而私人的須要收費,這絕非是咱們願意的。因此找了個跟gitHub
很類似,可是又免費的gitLab
。如今將搭建gitLab
過程記錄一下留做參考。java
GitLab是利用 Ruby on Rails
一個開源的版本管理系統,實現一個自託管的Git項目倉庫,可經過Web界面進行訪問公開的或者私人項目。它擁有與Github相似的功能,可以瀏覽源代碼,管理缺陷和註釋。能夠管理團隊對倉庫的訪問,它很是易於瀏覽提交過的版本並提供一個文件歷史庫。團隊成員能夠利用內置的簡單聊天程序(Wall)進行交流。它還提供一個代碼片斷收集功能能夠輕鬆實現代碼複用,便於往後有須要的時候進行查找。 linux
依賴組件:ruby 1.9.3+,MySQL,git,redis, Sidekiq。
最低配置CPU 1G,RAM 1G+swap能夠支持100用戶。git
首先要肯定ubuntu
上安裝而且啓動了ssh
服務,而後還要確保linux
系統上的防火牆要關閉,win8
的防火牆能夠正常開啓SSH
(仿真終端工具備PUTTY,SecureCRT 以及Fterm等)能夠google
下載的了.
步驟:
1, 有人說首先要在Virtual Network Editor
作NAT
的端口映射,實際上是不須要的;github
ps -e|grep ssh複製代碼
若是結果中只有ssh-agent
,那說明ssh-server
尚未啓動,通常ubuntu
是默認安裝ssh
的,要是沒有安裝,能夠經過redis
sudo apt-get install openssh-server複製代碼
安裝ssh服務spring
sudo /etc/init.d/ssh start複製代碼
啓動ssh服務ubuntu
ubuntn
剛安裝時候root
尚未密碼,設置一個,使用命令瀏覽器
sudo passwd複製代碼
官方有安裝包與腳本下載,官方安裝指南。一樣GITHUB上有個社區非官方的安裝指南。
但這兒裏推薦bitnami
下載打包安裝版本 bitnami.com/stack/gitla… ,省去不少時間。他們也提供相關WIKI
以ubuntu爲演示環境,來安裝這個包,切換到root
帳戶, 在終端運行:
若是沒有權限,先受權帳號: ruby
chmod 777 bitnami-gitlab-8.5.7-0-linux-x64-installer.run複製代碼
而後切換root
用戶執行:
./bitnami-gitlab-8.5.7-0-linux-x64-installer.run複製代碼
執行後就會彈出圖形化界面,一步步確認就行,以下圖
第一次安裝好了就默認啓動了gitlab
,若是要手動啓動的話有兩種辦法
1.找到安裝好的路徑/opt/gitlab-8.5.7-0
須要root
權限執行命令:
sudo ./ctlscript.sh start複製代碼
2.也能夠查看GUI
管理控制檯,在Manage Servers中
選擇Start All
啓動全部
sudo ./manager-linux-x64.run複製代碼
啓動後,就能夠訪問系統頁面了,這裏先經過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.rbconfig.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
私有項目。這樣只有小組內的成員能夠下載這個項目
這裏切換到tengj
用戶登錄,發現已經有了springmvctouchbaidu
項目
SSH key
,複製咱們本地
\.ssh\id_rsa.pub
的內容黏貼到下面圖中指定的便可。
這裏模擬tengj
下載遠程項目,在這以前我已經用管理員帳號把項目傳上去了,如圖
指定一個目錄存放該項目,執行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
分支上。
下面模擬一下tengj用戶提交代碼:
ok,花了三天時間終於搞定了,截圖仍是蠻累人的哈哈,算是比較詳細的記錄了我此次安裝gitlab
的過程,我的感受比網絡上的文章調理清晰多了。一開始查資料快累死了。但願對你有所幫助。
一直以爲本身寫的不是技術,而是情懷,一篇篇文章是本身這一路走來的痕跡。靠專業技能的成功是最具可複製性的,但願個人這條路能讓你少走彎路,但願我能幫你抹去知識的蒙塵,但願我能幫你理清知識的脈絡,但願將來技術之巔上有你也有我。
更多幹貨內容,盡在嘟爺java超神學堂(javaLearn),您不掃一下麼