gitlab 搭建使用

1. 硬件要求

##CPU 
4 核心500用戶 
8 核心1000用戶 
##內存 
4 G內存500用戶 
8 G內存1000用戶

2. 下載 鏈接

3. 安裝依賴

yum -y install curl openssh-server postfix wget

4. 安裝gitlab組件

yum -y localinstall gitlab-ce-15.9.3-ce.0.el7.x86_64.rpm

5. 修改配置文件

cat > /etc/gitlab/gitlab.rb <<EOF
external_url 'http://gitlab.tom.com'
gitlab_rails['smtp_enable'] = false
gitlab_rails['registry_enabled'] = false
registry['enable'] = false
prometheus['enable'] = false
alertmanager['enable'] = false
node_exporter['enable'] = false
redis_exporter['enable'] = false
postgres_exporter['enable'] = false
gitlab_exporter['enable'] = false
prometheus_monitoring['enable'] = false
EOF

#使用gitlab.rb文件重新生成子配置文件

gitlab-ctl reconfigure

#重啟所有gitlab相關文件.

gitlab-ctl restart

#查看gitlab狀態

]# gitlab-ctl status
run: gitaly: (pid 31042) 128s; run: log: (pid 30218) 355s
run: gitlab-kas: (pid 31141) 118s; run: log: (pid 30464) 344s
run: gitlab-workhorse: (pid 31147) 117s; run: log: (pid 30632) 294s
run: logrotate: (pid 31157) 117s; run: log: (pid 30173) 367s
run: nginx: (pid 31853) 2s; run: log: (pid 30647) 289s
run: postgresql: (pid 31208) 96s; run: log: (pid 30397) 348s
run: puma: (pid 31197) 97s; run: log: (pid 30575) 306s
run: redis: (pid 31202) 97s; run: log: (pid 30194) 361s
run: sidekiq: (pid 31219) 95s; run: log: (pid 30599) 300s

6. 登錄gitlab頁面

]# cat /etc/gitlab/initial_root_password
# WARNING: This value is valid only in the following conditions
#          1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
#          2. Password hasn't been changed manually, either via UI or via command line.
#
#          If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.Password: fIElM6At23WAaLvZBiy2lzFvOd8Vz8ch96gw3Y0S+HU=# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.

登錄用戶:root

密碼:/etc/gitlab/initial_root_password文件中的Password字段值

7. 漢化

8. 修改密碼

9. 關閉注冊功能

10. 使用案例

步驟:

1. 創建dev開發組
2. 添加用戶tom
3. 用戶組添加用戶
4. 創建1個項目happy_app并關聯dev組

10.1. 創建dev開發組

10.2. 創建用戶

10.3. 關聯用戶到用戶組

10.4. 創建項目并關聯組

10.5. 普通用戶登錄gitlab

]# cat /root/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSZ9RvDQpNBc9Hz0vJ8vzQ/bE5Nu7bH9o+krxItSGHvwCCkuducUve0vweyEk52iZRUb3OYAH9Z5GDTFZ+br5sipT/wg8z7FW8g+EhDAOc9adsHSU+hDluKykyw6qLnQ4rX9tIZh6KXrZCiLneRBtfESg+MQvxNYZ8qiAqmiyq3tuz1Wue8KJ/869GvYVoPYDNYt+HBUmSJb9aagVkndXvHvex6ECgRTDrdzoXfpd5HrIlgtvxT46+RnZX5pFiDyUd0K7k9T99VxLQU5oUFUh+YA9glpojleKlOduUa1ld6Lno+StQdAOhKsUYiz31UKwJ5IBE0XCx5OTnG372p0Ib root@jenkins

把用戶主機上/root/.ssh/id_rsa.pub 里面的公鑰復制到下圖1的位置,如果沒有此文件,先ssh-keygen生成

已經有遠程倉庫的代碼,需要切換遠程倉庫地址

#把origin重命名為old-origin
git remote rename origin old-origin
#添加新的origin地址
git remote add origin git@gitlab.tom.com:dev/happy-app.git
#推送所有分支
git push -u origin --all
#推送所有tag
git push -u origin --tags

上面報錯是因為此用戶權限是developer,無法創建分支,可以用管理員賬戶把tom用戶權限調整為owner.

已經可以看到代碼的分支,標簽,提交記錄

11. 如果gitlab管理員用戶名密碼忘記,重置方法

gitlab-rake "gitlab:password:reset"

12. gitlab備份與恢復

12.1. gitlab服務配置文件備份

/etc/gitlab目錄備份

12.2. 備份gitlab里面的內容

gitlab_rails['manage_backup_path'] = true   		#是否可以指定備份目錄
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" #備份目錄
gitlab_rails['backup_archive_permissions'] = 0600   #備份的壓縮包權限
gitlab_rails['backup_keep_time'] = 604800   		#備份保留多久 7天]# egrep -v '^$|^#' /etc/gitlab/gitlab.rb
external_url 'http://gitlab.tom.com'
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_archive_permissions'] = 0600
gitlab_rails['backup_keep_time'] = 604800
gitlab_rails['smtp_enable'] = false
gitlab_rails['registry_enabled'] = false
registry['enable'] = false
prometheus['enable'] = false
alertmanager['enable'] = false
node_exporter['enable'] = false
redis_exporter['enable'] = false
postgres_exporter['enable'] = false
gitlab_exporter['enable'] = false
prometheus_monitoring['enable'] = false#重新生成子配置文件
]# gitlab-ctl reconfigure]# gitlab-ctl restart#手動執行備份命令
]# gitlab-backup create

12.3. gitlab恢復數據

先停止寫入數據

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

執行恢復命令

注意:執行恢復命令的時候,備份文件的名字去除_gitlab_backup.tar,只要前面的部分

 ~]# ll /var/opt/gitlab/backups/
-rw------- 1 git git 512000 Jul 12 08:40 1720744836_2024_07_12_15.9.3_gitlab_backup.tar~]# gitlab-backup restore BACKUP=/var/opt/gitlab/backups/1720744836_2024_07_12_15.9.3

12.4. 定時任務備份

#創建備份目錄
mkdir -p /backup/gitlab/{code,conf}
chown -R git.root /backup/gitlab/code
#--------------------------------------------------------------
#修改git配置文件中備份文件夾路徑
[root@gitlab ~]# egrep -v '^$|^#' /etc/gitlab/gitlab.rb
external_url 'http://gitlab.tom.com'
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/backup/gitlab/code/"
gitlab_rails['backup_archive_permissions'] = 0600
gitlab_rails['backup_keep_time'] = 604800
gitlab_rails['smtp_enable'] = false
gitlab_rails['registry_enabled'] = false
registry['enable'] = false
prometheus['enable'] = false
alertmanager['enable'] = false
node_exporter['enable'] = false
redis_exporter['enable'] = false
postgres_exporter['enable'] = false
gitlab_exporter['enable'] = false
prometheus_monitoring['enable'] = false#重新生成子配置文件
]# gitlab-ctl reconfigure
]# gitlab-ctl restart
#--------------------------------------------------------------
#自動備份腳本
]# cat /server/scripts/backup-gitlab.sh 
#!/bin/bash
#1.備份gitlab數據
gitlab-backup create ? ?
#2.備份gitlab配置和密碼文件
tar zcf /backup/gitlab/conf/gitlab-conf-$(date +%F).tar.gz ? /etc/gitlab/
#3. 傳輸到備份服務器
#rsync xxx#增加定時任務
* 03 * * * /bin/bash /server/scripts/backup-gitlab.sh  &> /backup/gitlab/back.log

13. gitlab證書配置

為了防止內網滲透,將gitlab服務的訪問添加了ssl,具體步驟如下:
1.gitlab配置https(請先做個快照.)
nginx['enable' ] = true
nginx['client_max_body_size' ]= '250m '
nginx['redirect_http_to_https' ]= true
nginx['redirect_http_to_https _port' ] = 443
nginx['ssl_certificate' ] = "path/ key.crt"
nginx['ssl_certificate_key'] = "path/ key.key"
nginx['ssl_ciphers' ] ="ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256"
nginx['ssl_prefer_server_ciphers']= "on"
nginx['ssl_protocols']= "TLSv1.2"
nginx['ssl_session_cache' ] = "builtin:1000shared:sSL: 10m"
nginx['ssl_session_timeout']= "5m"核心:
nginx['ssl_certificate' ] = 用于指定證書 .crt .pem
nginx['ssl_certificate_key'] ?= 用于指定私鑰 .key 2.gitlab重新配置子項目
gitlab-ctl reconfigure
重啟:
gitlab-ctl restart

14. 優化配置

優化暫時不用組件 (選作)
#關閉目前不使用的組件 默認都是true 修改為 false 
#關閉prometheus
prometheus['enable'] = false
prometheus['monitor_kubernetes'] = false
#關閉alertmanger
alertmanager['enable'] = false
#關閉exporter 如果需要prometheus監控 則可以打開。
node_exporter['enable'] = false
redis_exporter['enable'] = false
postgres_exporter['enable'] = false
gitlab_monitor['enable'] = false
#gitlab_exporter
prometheus_monitoring['enable'] = false
grafana['enable'] = false

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/45170.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/45170.shtml
英文地址,請注明出處:http://en.pswp.cn/web/45170.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Qt Quick qml自定義控件:qml實現電池控件

qml入門進階專欄地址:https://blog.csdn.net/yao_hou/category_9951228.html?spm=1001.2014.3001.5482 本篇博客介紹如何使用qml來實現電池控件,效果圖如下: 下面給出實現代碼 Battery.qml /*電池組件*/import QtQuick 2.15 import QtQuick.Controls 2.15Rectangle {id: b…

實驗05 單元測試

知識點 單元測試的定義 單元測試&#xff08;Unit Testing&#xff09;是一種軟件開發的驗證過程&#xff0c;旨在隔離并檢測軟件組件&#xff08;通常是函數、方法或類&#xff09;的單個單元的功能是否按照預期執行。每個測試用例驗證特定的條件或功能&#xff0c;確保代碼的…

Apache Kylin: 大數據時代的分析引擎

在大數據時代&#xff0c;企業面臨著數據量激增的挑戰&#xff0c;傳統的數據分析方法已經無法滿足快速、高效的處理需求。Apache Kylin作為開源的分布式分析引擎&#xff0c;為超大規模數據集提供了快速的洞察能力。本文將介紹Kylin的基本概念、架構、特性以及如何部署和使用K…

音視頻開發—使用FFmpeg將YUV文件編碼成H264裸流文件 C語言實現

文章目錄 1.準備工作2.壓縮編碼工作流程3.詳細步驟1. 初始化日志和參數檢查2. 輸入/輸出文件的打開3. 查找和初始化編碼器4. 打開編碼器5. 幀內存的分配和初始化6. 設置轉換上下文&#xff08;SWS&#xff09;7. 讀取和轉換數據8. 編碼過程9. 資源清理 4.完整示例代碼 1.準備工…

熊海CMS漏洞練習平臺的一次xss、sql注入、越權黑盒思路分析

簡介 熊海CMS是由熊海開發的一款功能豐富的網站綜合管理系統&#xff0c;廣泛應用于個人博客、個人網站以及企業網站&#xff0c;本文章用于黑盒測試&#xff0c;如果需要「源碼審計」后臺回復【「CMS」】獲取即可&#xff0c;精心準備了40多個cms源碼漏洞平臺&#xff0c;供寶…

代碼隨想錄第七天(454、383、15、18)

題目一&#xff1a;四數相加II 鏈接&#xff1a; 代碼隨想錄 思路&#xff1a;首先用雙循環遍歷構成ab的值和出現的次數&#xff0c;用字典接收&#xff0c;由于abcd0&#xff0c;因為在對c和d進行雙循環后&#xff0c;在字典中找到0-c-d&#xff0c;得出它的值也就是出現次數…

在瀏覽器控制臺中輸出js對象,為什么顏色不同,有深有淺

打開console&#xff0c;輸入自定義的javascript對象的時候&#xff0c;打開看發現對象的屬性是深紫色&#xff0c;后面有一些對象是淺紫色的&#xff0c;比如Array對象和一堆SVG,HTML,CSS開頭的對象&#xff0c;常用的prototype和__proto__也是淺紫色的。 請問這里深紫和淺紫…

【Unity】制作簡易計時器

一、創建計時器相關的變量 我們需要創建三個變量&#xff0c;分別是&#xff1a;計時時長、計時剩余時長、是否處于計時狀態。 public float duration;//計時時長 public float remain; //計時剩余時長 public bool isCount; //是否處于計時狀態 二、初始化變量 我們可以直…

什么是Maven以及如何配置Maven

T04BF &#x1f44b;專欄: 算法|JAVA|MySQL|C語言 &#x1faf5; 今天你敲代碼了嗎 文章目錄 1.Maven1.1什么是Maven1.2Maven的好處1.3使用idea創建一個Maven項目1.4Maven的核心功能1.4.1項目構建 1.5Maven倉庫1.5.2 中央倉庫1.5.3 私有服務器(私服) 1.6Maven設置國內源 1.Mave…

[pytorch]常用函數(自用)

一、公共部分 1、torch.linespace 返回一維張量&#xff0c;在start和end之間&#xff08;包括start也包括end&#xff09;的均勻間隔的steps個點&#xff0c;長度為steps。 print(torch.linspace(1,10,3)) #輸出tensor([ 1.0000, 5.5000, 10.0000]) print(torch.linspace…

文本分類--NLP-AI(八)

文本分類任務 任務簡介1.字符數值化方式1方式2 2.池化&#xff08;pooling&#xff09;3.全連接層4.歸一化函數&#xff08;Sigmoid&#xff09;5.總結 從任務抽象新的技術點Embedding層池化層 任務簡介 任務介紹&#xff1a; 字符串分類&#xff0c;根據一句話的含媽量&#…

伊利25屆校招24年社招網申入職北森測評題庫全攻略!一文通!

伊利校招社招網申測評全攻略&#x1f680; 親愛的求職小伙伴們&#xff0c;今天我要分享一份伊利校招社招網申測評的全攻略&#xff0c;希望能助你們一臂之力&#xff01; 測評概覽 伊利的網申測評分為六個部分&#xff0c;總共約60分鐘的答題時間&#xff0c;涵蓋了言語邏輯、…

避免 WebSocket 連接被拒絕

一、檢查服務器配置和權限 (一)確認服務器訪問權限 確保您的客戶端有訪問服務器的合法權限。如果服務器設置了訪問控制列表(ACL)或僅允許特定的源(Origin)進行連接,您需要確保客戶端的請求來源在允許的范圍內。例如,如果服務器只允許來自特定域名的連接,而您的客戶端從…

【微信小程序開發】如何定義公共的js函數,其它頁面可以調用

在微信小程序開發中&#xff0c;可以通過以下步驟定義和使用公共的 JS 函數&#xff0c;使得其它頁面可以調用&#xff1a; 1. 創建一個公共的 JS 文件&#xff1a;在項目的 utils 目錄下創建一個 JS 文件&#xff0c;例如 utils/util.js。 2. 定義公共函數&#xff1a;在 uti…

在word中刪除endnote參考文獻之間的空行

如圖&#xff0c;在References中&#xff0c;每個文獻之間都有空行。不建議手動刪除。打開Endnote。 打開style manager 刪除layout中的換行符。保存&#xff0c;在word中更新參考文獻即可。

Python和C++全球導航衛星系統和機器人姿態觸覺感知二分圖算法

&#x1f3af;要點 &#x1f3af;馬爾可夫隨機場網格推理學習 | &#x1f3af;二維伊辛模型四連網格模型推理 | &#x1f3af;統計物理學模型擾動與最大乘積二值反卷積 | &#x1f3af;受限玻爾茲曼機擾動和最大乘積采樣 | &#x1f3af;視覺概率生成模型測試圖像 &#x1f3…

從課本上面開始學習的51單片機究竟有什么特點,在現在的市場上還有應用嗎?

引言 51單片機&#xff0c;作為一種經典的微控制器&#xff0c;被廣泛應用于各種嵌入式系統中。盡管如今ARM架構的高性能低成本單片機在市場上占據主導地位&#xff0c;但51單片機憑借其獨特的優勢依然在某些領域保持著應用價值。本文將深入探討51單片機的特點、架構、應用以及…

ubuntu22.04 安裝boost

下載boost壓縮包&#xff0c;我這里上傳了一份1_81_0版本tar -xzvf boost_1_81_0.tar.gzcd boost_1_81_0/sudo apt install build-essential g autotools-dev libicu-dev libbz2-dev -ysudo ./bootstrap.sh --prefix/usr/./b2sudo ./b2 install 上述7步完成后&#xff0c;相關…

數學建模·模糊評價法

模糊評價法 一種解決評價問題或者得出最佳方案的方法 主觀性仍比較強 具體定義 三集&#xff1a;因素集&#xff0c;評語集和權重集&#xff0c;通過模擬矩陣的處理得到最合理的評語 具體步驟 因素集 因素集的確定不難&#xff0c;難在對分級評價時&#xff0c;對因素集的分級…

LeetCode --- 134雙周賽

題目 3206. 交替組 I 3207. 與敵人戰斗后的最大分數 3208. 交替組 II 3209. 子數組按位與值為 K 的數目 一、交替組 I & II 題目中問環形數組中交替組的長度為3的子數組個數&#xff0c;主要的問題在于它是環形的&#xff0c;我們要考慮首尾相接的情況&#xff0c;如何…