GitLab私有化部署 - CI/CD - 持續集成/交付/部署 - 源代碼托管 & 自動化部署

預期目標源代碼管理借助GitLab實現源代碼托管,私有化部署版本,創建項目,創建用戶組,分配權限,項目的簽入/牽出等 。
自動化部署源代碼產生變更時(如簽入),自動化編譯并發布到指定服務器中部署,借助GitLab-runner實現持續交付部署,供用戶訪問項目新版 , 這里用在開發環境 。
環境說明硬件基本要求:4核4GRHEL8 Linux operating system:這里用官網提到的 AlamLinux8(安裝GitLab時,系統的 /boot 需要有1GB以上的空間)GitLab:用于源代碼管理Git:用于遠程自動拉取源代碼GitLab-runner:用于實現自動化部署的實例dotnet 6.0:測試站點的運行環境
環境安裝最主要的兩個安裝 GitLab、GitLab-runner 通常會分開部署 , 這里計劃所有的安裝均在同一臺服務器中 。
AlmaLinux8.6 operating system 安裝AlmaLinux官網:https://almalinux.orgGitLab的安裝包有800+MB,在安裝GitLab時,遇到系統boot分區空間不足的現象,這里需要將系統的 /boot 分區調整為1GB以上的空間 。下圖為安裝Linux時的分區設置 。

GitLab私有化部署 - CI/CD - 持續集成/交付/部署 - 源代碼托管 & 自動化部署

文章插圖
GitLab 安裝參考官方提供的安裝要求 https://gitlab.cn/install/
安裝前提關于防火墻,需要打開 HTTP、HTTPS 和 SSH 訪問 。通常Linux都會默認安裝了SSH等常用工具 。(可選) 如果您打算僅從本地網絡訪問極狐GitLab , 則可以跳過它 。
# OpenSSH 的安裝dnf install -y curl policycoreutils openssh-server openssh-clients# 開啟開機自啟動systemctl enable sshd# 啟動 OpenSSH 服務systemctl start sshd## 配置永久開啟防火墻 http、httpsfirewall-cmd --permanent --add-service=httpfirewall-cmd --permanent --add-service=https# 配置生效systemctl reload firewalld(可選) GitLab 通過 Postfix 發送電子郵件通知,或者跳過此步驟使用其他解決方案發送電子郵件 。
# Postfix 的安裝dnf install postfix# 開啟開機自啟動systemctl enable postfix# 啟動 Postfix 服務systemctl start postfix下載/安裝 GitLab,配置 GitLab 軟件源鏡像先下載 GitLab 鏡像倉庫
curl -fsSL https://packages.gitlab.cn/repository/raw/scripts/setup.sh | /bin/bash【GitLab私有化部署 - CI/CD - 持續集成/交付/部署 - 源代碼托管 & 自動化部署】GitLab 鏡像庫下載完成后的說明:1、鏡像庫文件 gitlab-jh.repo 保存于 /etc/yum.repos.d/ 目錄中2、生成 gitlab-jh 鏡像的緩存3、再安裝 gitlab-jh如下圖所示:
GitLab私有化部署 - CI/CD - 持續集成/交付/部署 - 源代碼托管 & 自動化部署

文章插圖
安裝 GitLab 應用到系統
# 按照上一步的說明# 先創建鏡像緩存(不是必須 , 為了后續的快速安裝)dnf clean all && dnf makecache# 再安裝 GitLab 應用到系統,并綁定訪問地址sudo EXTERNAL_URL="http://{所在服務器IP或域名}" dnf install -y gitlab-jh# 以上僅用 http 的方式 , 不用 https 方式 。登錄到 GitLab 頁面
# 安裝成功后 , 首次登陸自動生成的密碼存放于:/etc/gitlab/initial_root_password 中(只有24H的保留期限)# 查看密碼cat /etc/gitlab/initial_root_password## 在瀏覽器中打開訪問地址(安裝時設置的 http://{所在服務器IP或域名})# 啟動慢,出現502,需要耐心等待幾分鐘## 然后使用默認管理員賬號 root 和查找到的初始密碼 進行登錄在 GitLab 中創建項目為后續的測試效果,這里創建名為 my-project-test 的測試項目,登錄頁注冊用戶,管理員后臺審核通過 , 為測試項目添加成員,設置項目成員的相應權限 。這里成員設置為 Maintainer 角色 ?;騽摻ㄓ脩艚M,把用戶組賦予項目,并賦予相應權限 。
本地編寫源代碼 , 實現文件屬性時間的讀取功能,并簽入到 GitLab 創建的 my-project-test 測試項目中 。如下圖所示:
GitLab私有化部署 - CI/CD - 持續集成/交付/部署 - 源代碼托管 & 自動化部署

文章插圖
到此,通過 GitLab 中提供的功能,實現了源代碼的托管 。
GitLab-runner 安裝這里 GitLab-runner 主要時通過 GitLab 的項目中 CI/CD 自定義的流水線步驟,來完成自動化部署的任務 。依據官網安裝說明:https://docs.gitlab.com/runner/install/linux-manually.html
# 按官網的方式,做以下步驟:## 下載安裝包到指定目錄curl -L --output /usr/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64"# 授予安裝包可運行的權限chmod +x /usr/bin/gitlab-runner# 創建 GitLab-runner 的運行賬號useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash# 用指定賬號安裝 gitlab-runnergitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner# gitlab-runner 服務管理gitlab-runner start# 啟動gitlab-runner stop# 停止

推薦閱讀