linux進階之gitlab倉庫搭建及免密使用


一、Gitlab簡介

GitLab 是一個用於倉庫管理系統的開源項目,使用Git作為代碼管理工具,並在此基礎上搭建起來的web服務。

可通過Web界面進行訪問公開的或者私人項目。它擁有與Github類似的功能,能夠瀏覽源代碼,管理缺陷和注釋。可以管理團隊對倉庫的訪問,它非常易於瀏覽提交過的版本並提供一個文件歷史庫。團隊成員可以利用內置的簡單聊天程序(Wall)進行交流。它還提供一個代碼片段收集功能可以輕松實現代碼復用。Gitlab私有倉庫;GitHub公共的代碼倉庫。

功能:Gitlab 是一個提供代碼托管、提交審核和問題跟蹤的代碼管理平台。對於軟件工程質量管理非常重要。

版本:GitLab 分為社區版(CE 和企業版(EE)。

配置:建議CPU2核,內存2G以上。

Gitlab的服務構成:

1Nginx:靜態web服務器。

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

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

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

4logrotate:日志文件管理工具。

5postgresql:數據庫。

6redis:緩存數據庫。

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

8unicornAn HTTP server for Rack applicationsGitLab Rails應用是托管在這個服務器上面的。(Ruby Web Server,主要使用Ruby編寫)

管理的命令:

gitlab-ctl stop            #停止所有gitlab組件

gitlab-ctl start            #啟動所有gitlab組件

gitlab-ctl restart         #重啟所有gitlab組件

gitlab-ctl status          #查看服務狀態

gitlab-ctl reconfigure        #重新編譯gitlab的配置(執行 reconfigure 命令會把gitlabnginx組件的配置還原,導致自定義修改的端口以及域名等都沒有了。)

vim /etc/gitlab/gitlab.rb            #修改gitlab配置文件

gitlab-rake gitlab:check SANITIZE=true --trace              #檢查gitlab

gitlab-ctl tail              #查看日志

二、gitlab安裝及使用

第一步:安裝gitlab

[root@ren5 ~]# yum localinstall gitlab-ce-8.9.5-ce.0.el7.x86_64.rpm -y

第二步:修改配置文件

在文件11行左右把主機名修改為主機IP地址

[root@ren5 ~]# vim /etc/gitlab/gitlab.rb

########################################

11 external_url 'http://192.168.11.5'

#############################################

注釋行#的含義:

1.不生效

2.默認值

第三步:重新配置(使配置重新生效,需要一定的時間)

啟動gitlab的時候80端口不能被占用!

[root@ren5 ~]# gitlab-ctl reconfigure          #重新配置

[root@ren5 ~]# ss -tnl

[root@ren5 ~]# lsof -i :80

COMMAND  PID       USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

nginx   9629       root    6u  IPv4  50984      0t0  TCP *:http (LISTEN)

nginx   9630 gitlab-www    6u  IPv4  50984      0t0  TCP *:http (LISTEN)

[root@ren5 ~]# firewall-cmd --add-port=80/tcp                      #添加防火牆端口

[root@ren5 ~]# firewall-cmd --add-port=80/tcp --permanent

第四步:瀏覽器訪問

直接輸入服務器IP 即可訪問

需要修改密碼,輸入新的密碼,密碼長度需要8位(change your password

Admin換成root,密碼就是剛才設置的密碼,點擊sign in

第五步:gitlab使用

windows中可以通過創建用戶,創建項目組,創建項目來新建一個項目

Linux中的使用

[root@ren5 ~]# mkdir rrr        #創建根目錄

[root@ren5 ~]# cd rrr

[root@ren5 rrr]# yum -y install git

[root@ren5 rrr]# git clone http://192.168.11.5/root/first-project.git      #克隆遠程倉庫(拉取項目)

[root@ren5 rrr]# ls

first-project

[root@ren5 rrr]# cd first-project/

[root@ren5 first-project]# ls -a

.  ..  .git

[root@ren5 first-project]# touch {1..5}.txt        #更新文件

[root@ren5 first-project]# echo "111111111111" > 1.txt

[root@ren5 first-project]# ls

1.txt  2.txt  3.txt  4.txt  5.txt

[root@ren5 first-project]# git add .             #工作目錄內容上傳到暫存區域

[root@ren5 first-project]# git commit -m "v1"         #把暫存區內容添加到倉庫

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"

  git config --global user.name "Your Name"

to set your account's default identity.

Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'root@ren5.(none)')

[root@ren5 first-project]# git config --global user.email "you@example.com"

[root@ren5 first-project]# git config --global user.name "Your Name"      #認證

[root@ren5 first-project]# git commit -m "v1"         #重新提交

[master(根提交) d5aee1b] v1

 5 files changed, 1 insertion(+)

 create mode 100644 1.txt

 create mode 100644 2.txt

 create mode 100644 3.txt

 create mode 100644 4.txt

 create mode 100644 5.txt

[root@ren5 first-project]# git branch          #查看分支

* master

[root@ren5 first-project]# git push -u origin master        #把本地內容推送至遠程倉庫(第一次推送時必須加 -u 選項,之后可不加-u選項)

Username for 'http://192.168.11.5': root             #輸入用戶名(gitlab的用戶密碼)

Password for 'http://root@192.168.11.5':          #輸入密碼

[root@ren5 first-project]# git branch hello        #創建新的分支

[root@ren5 first-project]# git checkout hello            #切換到新分支

切換到分支 'hello'

[root@ren5 first-project]# touch test && echo "hello world" > test     #添加測試文件

[root@ren5 first-project]# git add .     #添加至暫存區

[root@ren5 first-project]# git commit -m "v2"         #添加至倉庫

[root@ren5 first-project]# git push -u origin hello           #推送至遠程倉庫

三、linux當中免密使用gitlab

在上面我們每次登錄gitlab都要輸入名字和密碼很麻煩,故可以使用密鑰SSH來推送。

第一步:生成密鑰對

ssh-keygen

第二步:復制公鑰信息

[root@ren5 first-project]# cat /root/.ssh/id_rsa.pub

第三步:粘貼到web服務端profile-settingsssh-keys

第四步:點擊提交之后再次下載倉庫信息

回車之后可以看到沒有輸入任何東西就直接下載完成

注意:拉取的時候指定的是ssh地址而不再是http地址!

推送時可使用分支的形式推送,也可以選擇ssh的地址進行推送

四、window中免密使用gitlab

第一步:准備文件

你需要首先在網上下載下面的這個客戶端工具:Git-2.7.2-32-bit_setup.1457942412.exe

第二步:安裝

第三步:創建一個文件夾作為工作目錄並進入目錄之后;右擊鼠標有兩個選項,一個是bash一個是圖形化

第四步:生成秘鑰信息,進行免密登錄;在這個界面輸入ssh-keygen一直點回車生成秘鑰信息

第五步:把公鑰信息輸入到web服務端;可以從上面的信息中看到秘鑰信息保存在哪了,現在我們去c盤找;復制這個公鑰里面的信息

第六步:本地下載倉庫;使用git clone 加上你的項目ssh信息

第七步:本地查看;發現已經有了倉庫信息了,現在你就可以開始寫程序了

第八步:測試;進入到包含.git的目錄並在此右擊打開bash,執行創建分支操作,並建立test.txt測試文件

第九步:上傳文件;和linux中一樣執行上傳命令

第十步:在web中查看;可以看到我們剛才在window中創建的文件也已經被上傳上來了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM