介紹
- GitLab: 是一個機遇 Git 實現的在線代碼倉庫托管軟件.
- 基於 Ruby on rails 開發.
- 集成了很多組件.
- 社區版本為開源免費版.
- 有完善的問題和追蹤系統.
- 從
8.0版開始,GitLab持續集成(CI)完全集成到GitLab本身,它還具有持續部署和持續交付功能,可用於構建、測試和部署你的應用程序。 - CD/CI
GitLab 組件
- Ngixn: 靜態 Web 服務器.
- gitlab-shell: 用於處理 Git 命令和修改 authorized keys 列表.
- gitlab-workhorse: 輕量級的反向代理服務器.
- logrotate: 日志文件管理工具.
- postgresql: 數據庫.
- redis: 緩存數據庫.
- sidekiq: 用於在后台執行任務隊列(一步執行).
- unicorn: GitLab Rails 是應用在托管在這個服務器上面.
目錄介紹
/var/opt/gitlab/git-data/repositories/ # 默認存儲目錄. /opt/gitlab/ # 應用代碼和相應的依賴程序. /var/opt/gitlab/ # gitlab-ctl reconfigure 命令編譯后的應用數據和配置文件,不需要人為修改. /etc/gitlab/ # 配置文件目錄. /var/log/gitlab/ # 此目錄下存放了 gitlab 各個組件生產的日志. /var/opt/gitlab/backups/ # 備份文件生成的目錄.
安裝gitlab
官網安裝介紹: https://about.gitlab.com/install/#centos-8
清華大學鏡站: https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el8/
官網源站: https://packages.gitlab.com/gitlab/gitlab-ce
安裝
dnf install policycoreutils-python-utils [root@node1 ~]# rpm -ivh gitlab-ce-13.2.1-ce.0.el8.x86_64.rpm
配置
配置訪問的URl [root@node1 ~]# vim /etc/gitlab/gitlab.rb external_url 'http://172.16.0.61' 配置 gitlab sudo gitlab-ctl reconfigure
查看各組件狀態
[root@node1 ~]# gitlab-ctl status run: alertmanager: (pid 34082) 93s; run: log: (pid 33702) 290s run: gitaly: (pid 34052) 98s; run: log: (pid 33179) 491s run: gitlab-exporter: (pid 34040) 99s; run: log: (pid 33625) 326s run: gitlab-workhorse: (pid 34027) 99s; run: log: (pid 33518) 370s run: grafana: (pid 34097) 92s; run: log: (pid 33954) 132s run: logrotate: (pid 33557) 354s; run: log: (pid 33567) 350s run: nginx: (pid 33539) 365s; run: log: (pid 33547) 362s run: node-exporter: (pid 34036) 99s; run: log: (pid 33606) 337s run: postgres-exporter: (pid 34089) 92s; run: log: (pid 33731) 276s run: postgresql: (pid 33315) 476s; run: log: (pid 33330) 472s run: prometheus: (pid 34061) 98s; run: log: (pid 33672) 301s run: puma: (pid 33461) 389s; run: log: (pid 33468) 388s run: redis: (pid 33141) 498s; run: log: (pid 33152) 495s run: redis-exporter: (pid 34045) 98s; run: log: (pid 33650) 312s run: sidekiq: (pid 33479) 383s; run: log: (pid 33489) 382s
初始化密碼
訪問:http:gitlab_ip

登錄

漢化
舊版本漢化
1、下載漢化補丁 git clone https://gitlab.com/xhang/gitlab.git 2、查看全部分支版本 git branch ‐a 3、對比版本、生成補丁包 git diff remotes/origin/10‐2‐stable remotes/origin/10‐2‐stable‐zh > ../10.2.2‐zh.diff 4、停止服務器 gitlab‐ctl stop 5、打補丁 patch ‐d /opt/gitlab/embedded/service/gitlab‐rails ‐p1 < /tmp/10.2.2‐zh.diff 6、啟動和重新配置 gitlab‐ctl start gitlab‐ctl reconfigure
新版本漢化
gitlab-13.2.1 已經支持中文版了
修改路徑: 用戶 - 配置 - 偏好配置 - 語言
gitlab常用命令
gitlab-ctl start # 啟動全部服務 gitlab-ctl restart # 重啟全部服務 gitlab-ctl stop # 停止全部服務 gitlab-ctl reconfigure # 重置配置文件(一般修改完主配置文件/etc/gitlab/gitlab.rb,需要執行此命令) gitlab-ctl show-config # 驗證配置文件 gitlab-ctl uninstall #刪除gitlab(保留數據) gitlab-ctl cleanse # 刪除所有數據,從新開始 gitlab-ctl tail <service name> #查看服務的日志
gitlab管理
組,用戶.項目的關系:
組中創建項目,項目中添加用戶.
如果組中添加用戶用戶就會有這個組中所有項目的權限.

組管理
創建-創建組



用戶管理
創建: 創建 - 創建用戶 - edit設置密碼
用戶加組: 組 - 向組添加用戶 - 設置用戶級別 - 添加用戶
用戶加項目: 項目 - 角色 - 設置用戶權限 - 訪問到期時間 - 添加用戶



設置密碼
edit - 設置密碼
用戶登錄需要再次修改密碼


用戶添加到組



項目管理
創建項目

添加用戶

分支保護
默認 master 只有 master權限才可以合並和push

沒有權限推送:
[root@node3 openstack]# git push origin master Enumerating objects: 6, done. Counting objects: 100% (6/6), done. Compressing objects: 100% (4/4), done. Writing objects: 100% (5/5), 427 bytes | 427.00 KiB/s, done. Total 5 (delta 1), reused 0 (delta 0) remote: GitLab: You are not allowed to push code to protected branches on this project. To 172.16.0.61:wbecloud/openstack.git ! [remote rejected] master -> master (pre-receive hook declined) error: failed to push some refs to 'git@172.16.0.61:wbecloud/openstack.git'
merge操作
開發人員推送代碼到指定的分支,發起merge操作, master 進行merge.
[root@node3 openstack]# git checkout -b dev Switched to a new branch 'dev' [root@node3 openstack]# git branch * dev master [root@node3 openstack]# git push -u origin dev Enumerating objects: 6, done. Counting objects: 100% (6/6), done. Compressing objects: 100% (4/4), done. Writing objects: 100% (5/5), 427 bytes | 427.00 KiB/s, done. Total 5 (delta 1), reused 0 (delta 0) remote: remote: To create a merge request for dev, visit: remote: http://172.16.0.61/wbecloud/openstack/-/merge_requests/new?merge_request%5Bsource_branch%5D=dev remote: To 172.16.0.61:wbecloud/openstack.git * [new branch] dev -> dev Branch 'dev' set up to track remote branch 'dev' from 'origin'.
發起合並操作



管理員處理合並請求

