一、gitlab部署與使用


一、Gitlab簡介

Gitlab 是一個基於Git實現的WEB代碼倉庫托管軟件,你可以用Gitlab自己搭建一個類似於Github一樣的代碼倉庫,一般使用gitlab搭建私有代碼倉庫主要是用在公司的內部代碼管理。

Gitlab 功能是能夠對代碼的提交審核和問題跟蹤,這個對於軟件工程(代碼)質量的管理是至關重要的。

Gitlab分為社區版(CE)和企業版(EE)。大多數的公司還是會選擇社區版。部署Gitlab是對服務器有配置要求的建議是CPU兩核,內存4G以上

 

二、Gitlab的工作原理

gitlab的原理其實就是git的工作原理,GitHub也是基於git實現的

 

工作圖示:

 

 

三、Gitlab的服務構成

1.Nginx:靜態Web服務器
2.gitlab-shell:用於處理Git命令和修改authorized keys列表
3.gitlab-workhorse:輕量級的反向代理服務器(這個是個敏捷的反向代理,它會處理一些大的HTTP請求,比如文件的上傳下載,其他的請求會反向代理給Gitlab Rails應用)
4.logrotate:日志文件管理工具
5.postgresql:數據庫
6.redis:緩存數據庫
7.sidekiq:用於在后台執行隊列的任務
8.unicorn:Gitlab Rails應用是托管在這個服務器上面的

  

一.項目實驗拓撲圖 

 

二.項目實驗思路及重點內容(步驟及重難知識點)

 

主機名 OS IP地址 軟件 服務器配置 說明概述
gitlab-01 Centos7 10.10.10.11 gitlab 4c,4G,100G 部署gitlab服務

 

GitLab 主要目錄
/var/opt/gitlab:數據目錄
/opt/gitlab:  安裝目錄
/etc/gitlab: 配置文件目錄
/etc/gitlab/gitlab.rb gitlab配置文件
/var/log/gitlab:此目錄下存放了 gitlab 各個組件產生的日志
/var/opt/gitlab/backups/:備份文件生成的目錄

  

 

1. gitlab下載與部署

官網:https://about.gitlab.com/
清華大學鏡像站:https://mirrors.tuna.tsinghua.edu.cn/
  • 訪問清華大學鏡像站,找到 gitlab-ce

 

 

  • 選擇yum

 

  •  選擇centos對應的版本

  •  選擇需要的版本

 

 2. 安裝對應的依賴

yum -y install curl openssh-server openssh-clients postfix cronie policycoreutils-python

3. 啟動postfix,並設置開機自啟

[root@gitlab ~]# systemctl start postfix
[root@gitlab ~]# systemctl enable postfix

 

報錯提示:

 

解決方法:

vi  /etc/postfix/main.cf

發現配置為:
inet_interfaces = localhost
inet_protocols = all

改成:
inet_interfaces = all
inet_protocols = all

重新啟動
systemctl  start postfix 

4. 關閉防火牆或者設置對應的防火牆策略

iptables -F
setenforce 0
systemctl stop firewalld
firewall-cmd --add-service=http --permanent
firewall-cmd --reload

 5. 安裝並修改配置文件/etc/gitlab/gitlab.rb,生產環境下可以跟據需求修改

[root@gitlab ~]# rpm -ivh gitlab-ce-11.11.3-ce.0.el7.x86_64.rpm
[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
  13 external_url 'http://192.168.200.111'

6. 重新加載配置文件

[root@gitlab ~]# gitlab-ctl reconfigure
[root@gitlab ~]# gitlab-ctl restart
[root@gitlab ~]# netstat -lnpt | grep :80

7. 管理命令

啟動:gitlib-ctl start 
關閉:gitlab-ctl stop 
重啟:gitlab-ctl restart 
重載配置:gitlab-ctl reconfigure 
查看狀態:gitlab-ctl status

8. 查看版本

[root@gitlab ~]# head -1 /opt/gitlab/version-manifest.txt

 

四、 web頁面管理功能  

瀏覽器訪問:http://ip地址

 

 

 輸入用戶名密碼

 

案例一:調整gitlab為中文

 

 點擊preferences

 

 

 

案例二:創建項目

 

 這里最好不要寫中文

 

 

 

 

 

 

 

 

 

 

在gitlab的web界面創建文件

 

 

 

 

 

 項目的查看

 

案例三:將項目授權給某個用戶

 

 

 

 用戶這時候沒有密碼

 

 

 

 

設置密碼

 

 這樣我們使用普通用戶就登錄進來了

 

 

 

 

 這樣xiaoli這個用戶就有項目的權限了

 

案例四:客戶端下載和提交代碼

 

 下載:

[root@k8s-node1 ~]# git clone http://10.10.10.11/share/dmw.git            #克隆下代碼
正克隆到 'dmw'...
Username for 'http://10.10.10.11': xiaoli         # 輸入賬號
Password for 'http://xiaoli@10.10.10.11':         # 輸入密碼
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
[root@k8s-node1 ~]# ls
anaconda-ks.cfg  dmw  initial-setup-ks.cfg        # 這個dmw就是克隆下來的代碼目錄

  

 提交:

 

 

 打開gitlab驗證:

案例五:設置發郵件功能

1. 修改或者添加配置文件

[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
517 gitlab_rails['smtp_enable'] = true
 518 gitlab_rails['smtp_address'] = "smtp.163.com"
 519 gitlab_rails['smtp_port'] = 25
 520 gitlab_rails['smtp_user_name'] = "lixie0215@163.com"
 521 gitlab_rails['smtp_password'] = "123456"
 522 gitlab_rails['smtp_domain'] = "163.com"
 523 gitlab_rails['smtp_authentication'] = "login"
 524 gitlab_rails['smtp_enable_starttls_auto'] = true
#修改gitlab配置的發信人
 53 gitlab_rails['gitlab_email_from'] = 'lixie0215@163.com'
677 user['git_user_email'] = "lixie0215@163.com"

2. 重新加載配置並重啟服務

[root@gitlab ~]# gitlab-ctl reconfigure
[root@gitlab ~]# gitlab-ctl restart

  

案例六:Gitlab的備份與恢復

步驟一:

停止gitlab的數據服務(禁止用戶寫入數據

[root@gitlab01 ~]# gitlab-ctl stop unicorn
ok: down: unicorn: 1s, normally up
[root@gitlab01 ~]# gitlab-ctl stop sidekiq
ok: down: sidekiq: 0s, normally up

步驟二:

通過gitlab-rake命令備份gitlab

gitlab-rake gitlab:backup:create
gitlab-ctl start      # 備份完成后啟動gitlab

 

溫馨提示:

  該命令會備份gitlab倉庫、數據庫、用戶、用戶組、用戶密鑰、權限等信息。備份完成后備份文件會出現在/var/opt/gitlab/backups/ (會生成以下這樣的文件)

 

 步驟三:

模擬gitlab服務器模擬用戶及數據

假如:把以下代碼模擬刪除

 

 

 

 步驟四:

模擬:恢復數據

禁止寫入數據:
[root@gitlab01 ~]# gitlab-ctl stop unicorn
ok: down: unicorn: 1s, normally up
[root@gitlab01 ~]# gitlab-ctl stop sidekiq
ok: down: sidekiq: 0s, normally up
執行恢復命令:
gitlab-rake gitlab:backup:restore BACKUP=1632376876_2021_09_23_11.11.3        # 輸入yes進行確認
gitlab-ctl start

  

驗證:(數據被還原了)

 


免責聲明!

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



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