Centos7安裝gitlab11 學習筆記之基礎概念、部署安裝、權限管理、issue管理


一、基礎介紹

  1、簡介

    一個基於GIT的源碼托管解決方案
    基於rubyonrails開發
    集成了nginx postgreSQL redis sidekiq等組件

  2、安裝要求 

      2g內存以上,有點占內存,我的2g內存創建項目適合就報503錯誤,調大一點就正常了

    這里使用centos7 64位


  3、默認用戶


    root/5iveL!fe,正常部署好登陸回要求改密碼


  4、常用命令


    gitlab-ctl status
    gitlab-ctl start
    gitlab-ctl stop
      gitlab-ctl restart
    gitlab-ctl tail nginx 查看日志


  5、組件


    nginx 靜態web
    gitlab-shell 用於處理git命令和修改
    gitlab-workhorse 輕量級的反向代理服務器
    logrotate 日志文件管理工具
    postgresql 數據庫
    redis 緩存數據庫
    sidekiq 用於在后台執行隊列任務(異步執行)、
    unicorn gitlab rails 應用是托管在這個服務器上面的


  6、目錄


    /var/opt/gitlab/git-data/repositories/root:庫默認存儲目錄
    /opt/gitlab:應用代碼和相應的依賴程序
    /var/opt/gitlab:gitlab-ctl reconfigure命令編譯后的應用數據和配置文件,不需要認為修改配置
    /etc/gilab:配置文件目錄
    /var/log/gitlab:此目錄下存放了gitlab各個組件產生的日志
    /var/opt/gilab/backups/:備份文件生成的目錄


  7、變更主配置文件


    gitlab-ctl reconfigure 重置配置文件
    gitlab-ctl show-config 驗證配置文件
    gitlab-ctl restart 重啟gitlab服務

  8、指定一個開發需求

 

 

二、安裝gitlab

  1、安裝依賴


    yum install curl policycoreutils openssh-server openssh-clients postfix

    systemctl enable sshd
    systemctl start sshd
    systemctl enable postfix
    systemctl start postfix

  2、rpm安裝


    wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.10.4-ce.0.el7.x86_64.rpm
    yum install gitlab
    rpm -ivh gitlab-ce-11.10.4-ce.0.el7.x86_64.rpm

 1 [root@web1 ~]# rpm -ivh gitlab-ce-11.10.4-ce.0.el7.x86_64.rpm
 2 warning: gitlab-ce-11.10.4-ce.0.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID f27eab47: NOKEY
 3 Preparing...                          ################################# [100%]
 4 Updating / installing...
 5    1:gitlab-ce-11.10.4-ce.0.el7       ################################# [100%]
 6 It looks like GitLab has not been configured yet; skipping the upgrade script.
 7 
 8        *.                  *.
 9       ***                 ***
10      *****               *****
11     .******             *******
12     ********            ********
13    ,,,,,,,,,***********,,,,,,,,,
14   ,,,,,,,,,,,*********,,,,,,,,,,,
15   .,,,,,,,,,,,*******,,,,,,,,,,,,
16       ,,,,,,,,,*****,,,,,,,,,.
17          ,,,,,,,****,,,,,,
18             .,,,***,,,,
19                 ,*,.
20   
21 
22 
23      _______ __  __          __
24     / ____(_) /_/ /   ____ _/ /_
25    / / __/ / __/ /   / __ `/ __ \
26   / /_/ / / /_/ /___/ /_/ / /_/ /
27   \____/_/\__/_____/\__,_/_.___/
28   
29 
30 Thank you for installing GitLab!
31 GitLab was unable to detect a valid hostname for your instance.
32 Please configure a URL for your GitLab instance by setting `external_url`
33 configuration in /etc/gitlab/gitlab.rb file.
34 Then, you can start your GitLab instance by running the following command:
35   sudo gitlab-ctl reconfigure
36 
37 For a comprehensive list of configuration options please see the Omnibus GitLab readme
38 https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
39 
40 [root@web1 ~]# 

     也可以yum方式安裝,添加以下源即可

1 或者添加yum源
2 [root@web1 yum.repos.d]# vim gitlab-ce.repo
3 
4 [gitlab-ce]
5 name=gitlab-ce
6 baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever
7 gpgcheck=0
8 enabled=1
9 ~                                                    

 

  3、修改配置文件

 

    vim /etc/gilab/gitlab.rb

      external_url 'http://192.168.216.51'

   4、重置配置文件,gitlab就生效了

 

    gitlab-ctl reconfigure

   5、測試

    

    流程:修改密碼>root用戶登陸>登陸進入界面

 

    現在已經登陸進來了

三、Gitlab的權限管理

  首先創建對象流程

    創建組

    創建用戶

    創建項目

    授權項目用戶

 

    

  1、創建一個組

 

  點擊create

 

 

    下面向組里面添加成員,這里還沒有創建用戶,開始創建用戶

 

 

  2、創建三個用戶

 

 

  點擊create創建,以此類推創建三個

 

    創建完用戶和組就可以創建項目了

    pm 項目管理

    dev1 開發者

    dev2 開發者

    

  3、創建一個項目

 

    新建了一個proj1/test的庫

 

 

  

  4、添加ssh keys

 

    SSH KEY

      個人SSH KEY:創建ssh key >將公鑰導入用戶ssh key

      Deploy KEY:創建deploy key >將deploy key 導入gitlab並在項目中允許

 

   1)個人 SSH KEY

    復制公鑰,粘貼到,user setting>SSH Keys

 1 [root@web1 ~]# cd /root/.ssh/
 2 [root@web1 .ssh]# ll 
 3 total 4
 4 -rw-r--r-- 1 root root 519 Apr 18 17:28 known_hosts
 5 [root@web1 .ssh]# ssh-keygen
 6 Generating public/private rsa key pair.
 7 Enter file in which to save the key (/root/.ssh/id_rsa): 
 8 Enter passphrase (empty for no passphrase): 
 9 Enter same passphrase again: 
10 Your identification has been saved in /root/.ssh/id_rsa.
11 Your public key has been saved in /root/.ssh/id_rsa.pub.
12 The key fingerprint is:
13 SHA256:+QcJvTcCplOp7IlgcFpKVKIS5SsRfkKbQntbQ9eMPBE root@web1
14 The key's randomart image is:
15 +---[RSA 2048]----+
16 |o*o. ..E*        |
17 |*+= . .+ =       |
18 |*B+o o  B .      |
19 |+B+.o..= + o     |
20 |+ +.  = S = o    |
21 | o . o o . + .   |
22 |    . o   . .    |
23 |           .     |
24 |                 |
25 +----[SHA256]-----+
26 [root@web1 .ssh]# ll
27 total 12
28 -rw------- 1 root root 1679 May  8 16:40 id_rsa
29 -rw-r--r-- 1 root root  391 May  8 16:40 id_rsa.pub
30 -rw-r--r-- 1 root root  519 Apr 18 17:28 known_hosts
31 [root@web1 .ssh]# cat id_rsa.pub 
32 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4n1yMW2IoWIU0NtcaBzc3nn+M1mWeeOKi9DB8QrLDk3YtjO2WPZ1MpF+CYiH59NWlKRRypNpccfiS8aMeA5zHnR33gvuK/C6j40McXOs5q/2xjvlD19yk4nSMp46EBv2lIQqfonzOvlVpZbwihUce6I30vLRkDcBMmDuY4JQR+o/72jM8GCt/809YGvVMe3zESc6ava2uoGksataW9Cr3ORiMPilgwx+l00JHEsPxqZ6bNFsLGCPI4UONj2pRD9VR/Os3Zr80oKxM4B+1TZHExTQicQoBLdm53n8LZOgxItvywTPR40EZiro9FlWFBrHlJMJWHSAzXd8GdsLOILOb root@web1 33 [root@web1 .ssh]#

 

    首先需要兩個開發者設置密碼,登陸進去設置ssh key

 

 

    設置好密碼分別登陸

 

    linux 系統為dev1

 

 

    windows為dev2

    window,安裝git

      下載地址:https://gitforwindows.org/

    設置目錄,選一個目錄右鍵Git bash here

    

 

 

   5、測試效果

    測試以下,已經打通權限了,提示似乎是個空庫

    linux測試

1 [root@web1 .ssh]# git clone git@192.168.216.51:proj1/test.git 2 Cloning into 'test'... 3 The authenticity of host '192.168.216.51 (192.168.216.51)' can't be established.
4 ECDSA key fingerprint is SHA256:kvAeuWOn6RFSXvl5qFIszQEx9gLizuZER+I4VJkpAso. 5 ECDSA key fingerprint is MD5:b7:ef:e0:3c:8f:97:01:c2:5c:9a:2e:fc:4d:e2:99:83. 6 Are you sure you want to continue connecting (yes/no)? yes 7 Warning: Permanently added '192.168.216.51' (ECDSA) to the list of known hosts. 8 warning: You appear to have cloned an empty repository.

    

    windows測試

 

 

   

四、Gitlab的issue管理

    創建milestone

    創建issue

    創建分支

    合並分支

    Todos

 

    Fix #issue_id

    Close #issue_id

 

  1、第一步創建Milestone

    圖示如下:

 

 

   

 

 

 

 

 

 

   2、創建issue

    如下圖示:

 

 

 

 

 

 

 

 

 

 

     

 

    以此類推,創建一共四個issue

 

  3、dev1 創建分支,開發首頁

 1 [root@web1 test]# ll 
 2 total 16
 3 -rw-r--r-- 1 root root  8 May  7 20:36 123.html
 4 -rw-r--r-- 1 root root 12 May  7 20:39 456.html
 5 -rw-r--r-- 1 root root 25 May  7 20:25 index.html
 6 -rw-r--r-- 1 root root 14 May  7 20:36 news.html
 7 drwxr-xr-x 3 root root 32 May  8 18:13 test
 8 [root@web1 test]# cd test
 9 [root@web1 test]# ll 
10 total 4
11 -rw-r--r-- 1 root root 6 May  8 18:13 readme
12 [root@web1 test]# git checkout -b shouye 13 Switched to a new branch 'shouye'
14 [root@web1 test]# git status 15 # On branch shouye
16 nothing to commit, working directory clean
17 [root@web1 test]# echo "<h1>welcom to web1</h1>" >index.html 18 [root@web1 test]# ll 
19 total 8
20 -rw-r--r-- 1 root root 24 May  9 11:58 index.html
21 -rw-r--r-- 1 root root  6 May  8 18:13 readme27 [root@web1 test]# git add . 28 [root@web1 test]# git commit -m "shouye"
29 [shouye 0a6efde] shouye
30  1 file changed, 1 insertion(+)
31  create mode 100644 index.html
32 [root@web1 test]# git push origin shouye 33 Counting objects: 4, done.
34 Delta compression using up to 4 threads.
35 Compressing objects: 100% (2/2), done.
36 Writing objects: 100% (3/3), 295 bytes | 0 bytes/s, done.
37 Total 3 (delta 0), reused 0 (delta 0)
38 remote: 
39 remote: To create a merge request for shouye, visit:
40 remote:   http://192.168.216.51/proj1/test/merge_requests/new?merge_request%5Bsource_branch%5D=shouye
41 remote: 
42 To git@192.168.216.51:proj1/test.git
43 * [new branch] shouye -> shouye 44 [root@web1 test]# 

 

    dev1登陸gitlab  web界面,點擊repository,可以看到一個push上來的代碼文件

 

 

  4、合並到主干

 

    dev1登陸gitlab  web界面

    點擊repository--》create merge request--》填寫相關信息交給pm處理--》點擊sumbmit merge request

  

 

    填上相關信息,這個合並需要pm來做,dev1提交申請

 

 

     提交后的狀態如下:

 

 

    

   pm登陸gitlab web界面

  可以看到一個merge requests--》點擊旁邊的todos---》檢查代碼確認---》點擊merge

     限制可以看到是open狀態,檢查沒有問題就點merge

 

 

 

 

     

  點擊branches 可以看到merged

 

 

    切換dev1賬戶,查看並點擊done完成

 

 

    切換pm,點擊milestones可以看到整個進度

 

     接着點擊下面issues看看

 

     還是open狀態,不應該啊,應該完成的就不是open狀態

 

    接下來需要點擊這個完成的issue,然后點擊close issue 就可以了

 

 

      每次完成還需要點close有點麻煩,接下來看看如何解決

 

      切換到主干pull以下,然后可以后面可以試試dev1   切換到master能不能上傳,這里就不演示了,是不能上傳的,因為dev1的權限是開發者

 1 [root@web1 test]# git checkout master  2 Switched to branch 'master'
 3 [root@web1 test]# ll 
 4 total 4
 5 -rw-r--r-- 1 root root 6 May  8 18:13 readme
 6 [root@web1 test]# git pull  7 remote: Enumerating objects: 1, done.
 8 remote: Counting objects: 100% (1/1), done.
 9 remote: Total 1 (delta 0), reused 0 (delta 0)
10 Unpacking objects: 100% (1/1), done.
11 From 192.168.216.51:proj1/test
12    7ec452a..b19d103  master     -> origin/master
13 Updating 7ec452a..b19d103
14 Fast-forward
15  index.html | 1 +
16  1 file changed, 1 insertion(+)
17  create mode 100644 index.html
18 [root@web1 test]# ll 19 total 8
20 -rw-r--r-- 1 root root 24 May  9 15:23 index.html
21 -rw-r--r-- 1 root root  6 May  8 18:13 readme
22 [root@web1 test]#

     

    創建第2個分支新聞,news,並上傳

 

 1 [root@web1 test]# git checkout -b news  2 Switched to a new branch 'news'
 3 [root@web1 test]# echo "news " >news.html  9 [root@web1 test]# git add . 10 [root@web1 test]# git commit -m "close #2"
11 [news 9503883] close #2
12  1 file changed, 1 insertion(+)
13  create mode 100644 news.html
14 [root@web1 test]# git push origin news
15 Counting objects: 4, done.
16 Delta compression using up to 4 threads.
17 Compressing objects: 100% (2/2), done.
18 Writing objects: 100% (3/3), 309 bytes | 0 bytes/s, done.
19 Total 3 (delta 0), reused 0 (delta 0)
20 remote: 
21 remote: To create a merge request for news, visit:
22 remote:   http://192.168.216.51/proj1/test/merge_requests/new?merge_request%5Bsource_branch%5D=news
23 remote: 
24 To git@192.168.216.51:proj1/test.git
25  * [new branch]      news -> news
26 [root@web1 test]# 

 

注意:

git commit -m "close #2"的意義在於添加標簽close #2 上一部最后需要點擊close issue,這里添加close標簽就不用點了,會自動生效。

 gitlab 上面的操作和第一個分支首頁一樣,只是最后不需要在去點close,這是因為添加了close #2 的注釋

 

 

轉載請注明出處:https://www.cnblogs.com/zhangxingeng/p/10826886.html 

 

   

  

 


免責聲明!

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



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