# gitlab_cicd **Repository Path**: openclaw-projects/gitlab_cicd ## Basic Information - **Project Name**: gitlab_cicd - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-24 - **Last Updated**: 2026-03-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GitLab CI/CD 自动化工具链 ## 项目概述 本项目实现了一个面向非专业CI/CD运维人员的全流程管理工具链,基于GitLab CE和GitLab Runner实现自动化流水线,强制测试环境仅允许部署来自Git仓库的代码。 ## 系统架构 ``` ┌─────────────────────────────────────────────────────────────┐ │ 目标服务器 (192.168.245.132) │ │ Ubuntu 22.04 LTS │ │ │ │ ┌──────────────────────────────────────────────────────┐ │ │ │ Docker Compose 网络 (172.20.0.0/16) │ │ │ │ │ │ │ │ ┌─────────────┐ ┌──────────────┐ │ │ │ │ │ GitLab CE │ │GitLab Runner │ │ │ │ │ │ :80 :443 │ │ Docker │ │ │ │ │ │ :2222 │ │ Executor │ │ │ │ │ └─────────────┘ └──────────────┘ │ │ │ │ │ │ │ │ │ │ ┌─────────────┐ ┌──────────────┐ │ │ │ │ │ PostgreSQL │ │ MinIO │ │ │ │ │ │ :5432 │ │:9000 :9001 │ │ │ │ │ └─────────────┘ └──────────────┘ │ │ │ └──────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────┘ ``` ## 组件说明 | 组件 | 版本 | 说明 | |------|------|------| | GitLab CE | latest | 代码仓库与CI/CD核心 | | GitLab Runner | latest | CI/CD任务执行器 | | PostgreSQL | 15 | 数据库存储 | | MinIO | latest | 对象存储(替代GitLab内置存储) | ## 快速开始 ### 1. 安装部署脚本 将本项目文件复制到服务器: ```bash # 在本地执行 scp -r ./gitlab-cicd/* gus@192.168.245.132:/opt/gitlab-cicd/ ``` ### 2. 执行部署 ```bash # SSH到服务器 ssh gus@192.168.245.132 # 执行部署脚本 cd /opt/gitlab-cicd chmod +x scripts/deploy.sh ./scripts/deploy.sh ``` ### 3. 初始化GitLab ```bash # 获取初始密码 docker exec gitlab-ce grep 'Password:' /etc/gitlab/initial_root_password # 浏览器访问 http://192.168.245.132 # 使用 root 用户和上述密码登录 ``` ### 4. 配置Runner 1. 在GitLab中获取Runner注册令牌: - 进入 Settings → CI/CD → Runners - 复制 "Set up a specific runner manually" 下的注册令牌 2. 注册Runner: ```bash docker exec -it gitlab-runner gitlab-runner register ``` 按照提示输入: - URL: `http://192.168.245.132` - Token: [粘贴注册的令牌] - Description: `gitlab-runner` - Executor: `docker` - Docker image: `alpine:latest` ## 项目结构 ``` /opt/gitlab-cicd/ ├── docker-compose.yml # Docker Compose配置 ├── config/ │ └── daemon.json # Docker镜像加速配置 ├── scripts/ │ ├── connect.sh # SSH连接脚本 │ ├── install-docker.sh # Docker安装脚本 │ └── deploy.sh # 部署脚本 ├── src/ │ ├── app/ │ │ ├── main.py # Flask应用入口 │ │ ├── app.py # 示例应用 │ │ └── test_app.py # 测试文件 │ ├── api/ │ │ └── deployments.py # 部署管理API │ ├── services/ │ │ └── notification.py # 通知服务 │ └── templates/ │ └── pipeline_templates.yaml # 流水线模板 ├── ci/ │ └── .gitlab-ci.yml # CI/CD配置文件 ├── hooks/ │ ├── pre-commit # 客户端提交钩子 │ └── pre-receive # 服务端接收钩子 └── docs/ └── README.md # 文档 ``` ## 使用指南 ### 提交代码 1. 克隆仓库: ```bash git clone http://192.168.245.132/root/test-project.git cd test-project ``` 2. 提交代码 (遵循规范): ```bash git add . git commit -m "feat: add new feature [TASK-123]" git push ``` 3. 查看Pipeline: - 访问项目 → CI/CD → Pipelines - 查看构建、测试、部署状态 ### 配置流水线 使用 `src/templates/pipeline_templates.yaml` 中的模板快速配置: 1. 选择适合的模板 (Python, Node.js, Java等) 2. 复制到项目根目录的 `.gitlab-ci.yml` 3. 根据需要修改配置 ### 部署验证 API端点验证部署来源: ``` POST /api/deployments/validate { "commit_sha": "abc123...", "source_type": "gitlab" } ``` ## 维护命令 ```bash # 查看服务状态 docker ps # 查看日志 docker logs -f gitlab-ce # 重启服务 docker-compose restart # 更新服务 docker-compose pull docker-compose up -d # 备份数据 docker run --rm -v gitlab_data:/data -v $(pwd)/backup:/backup alpine tar czf /backup/gitlab_data.tar.gz /data ``` ## 常见问题 ### GitLab启动很慢? - 首次启动需要5-10分钟初始化 - 使用 `docker logs -f gitlab-ce` 查看进度 ### Runner注册失败? - 确认GitLab已完全启动 - 检查注册令牌是否正确 - 验证网络连通性 ### 无法推送代码? - 检查分支保护设置 - 使用Merge Request合并代码 ## API文档 | 方法 | 端点 | 说明 | |------|------|------| | GET | /api/deployments | 获取部署列表 | | GET | /api/deployments/:id | 获取部署详情 | | POST | /api/deployments | 创建部署记录 | | POST | /api/deployments/validate | 验证部署来源 | | GET | /health | 健康检查 | ## 许可证 MIT License