Day 24: GitLab CI/CD 基本概念與工作流程
Day 25: GitLab Runners 配置與使用
Day 26: 使用 GitLab CI/CD 進行原始碼掃描及套件掃描
Day 27: 使用 GitLab CI/CD 進行自動化測試
Day 28: 如何在 GitLab CI/CD 中實現持續部署 (CD)
Day 29: GitLab CI/CD 與 Kubernetes 的集成實踐
因為免費方案之硬體需求關係,此章節會以GCP作為雲端平台來操作。
GitLab CI/CD 是一套自動化工具,用於管理軟體開發的持續整合(CI)和持續部署(CD)流程。開發者將代碼提交到 GitLab 存儲庫後,CI/CD 會自動觸發流水線(Pipeline),執行編譯、測試、部署等任務。透過 YAML 文件定義工作流程,GitLab CI/CD 可確保軟體品質,縮短交付周期,提高開發效率。
GitLab CI/CD 的工作流程始於代碼提交,觸發定義好的流水線(Pipeline)。流水線由多個階段(Stages)組成,如編譯、測試和部署,每個階段包含一系列任務(Jobs),按照順序或並行執行。這些任務在 GitLab Runner 上運行,完成後自動生成反饋。成功的流水線最終會自動將應用程序部署到目標環境,實現高效、可靠的持續整合與持續部署流程。
GitLab 是一個完整的 DevOps 平台,提供版本控制、持續整合/持續部署(CI/CD)、問題跟踪等功能,讓團隊可以協作開發和管理軟體項目。GitLab Runner 則是一個專門用來執行 CI/CD 任務的應用程序,它負責在不同環境中執行 GitLab 定義的流水線任務。簡單來說,GitLab 管理整個開發流程,而 GitLab Runner 則實際執行其中的自動化任務。
至此建立機器的部分就結束。
再來才能開始跑部署腳本
version: '3.8'
services:
gitlab:
image: gitlab/gitlab-ee:latest
restart: always
hostname: gitlab.example.com # 假設的主機名,可不變更
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://<主機ip>' # 將外部URL設置為公有IP
gitlab_rails['gitlab_shell_ssh_port'] = 2222 # 配置SSH端口
ports:
- '80:80' # HTTP 訪問
- '2222:22' # SSH 訪問
volumes:
- ./config:/etc/gitlab # 配置文件存儲路徑
- ./logs:/var/log/gitlab # 日誌存儲路徑
- ./data:/var/opt/gitlab # GitLab 數據存儲路徑
version: '3.6'
services:
web:
image: 'gitlab/gitlab-ee:16.2.1-ee.0'
restart: always
hostname: '<域名>'
environment:
GITLAB_OMNIBUS_CONFIG: |
letsencrypt['enable'] = true
letsencrypt['auto_renew'] = true
external_url 'https://域名'
gitlab_rails['gitlab_ssh_host'] = '<域名>'
gitlab_rails['lfs_enabled'] = true
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_keep_time'] = 604800
ports:
- '80:80'
- '443:443'
- '2224:22'
volumes:
- './config:/etc/gitlab'
- './logs:/var/log/gitlab'
- './data:/var/opt/gitlab'
shm_size: '2048m'
瀏覽器打開剛才申請的公有ip(靜態位址)
如果出現以下畫面,代表gitlab還在初始化,請耐心等候
放著等它就會自動跳轉至登入頁面
此時我們還不知道帳號密碼?因此需要先進容器配置
#記下容器ID
docker ps
#進入容器
docker exec -it <容器ID> bash
此時位於容器內部
再進入gitlab交互介面
#進入gitlab
gitlab-rails console
#尋找用戶為root
User.find_by(username: 'root')
#配置密碼為test
user.password = 'test'
#再次確認密碼為test
user.password_confirmation = 'test'
#儲存配置
user.save
離開方式
#退出gitlab交互介面
exit
#退出容器需要再下一次
exit
等待片刻之後終於看到登入頁面
建立一個專案
至此gitlab的架設完成
明天會直接進入gitlab runner
因此gitlab的介面及使用就留給大家自行探索囉~