自动化部署工具
Python
Docker
GitHub Actions
Ansible
这是一个用于自动化部署的工具项目,帮助开发者简化应用部署流程,实现一键部署到服务器或云平台。支持多种部署场景,适合个人项目和企业应用。
🎯 项目目标
让部署变得简单、可靠、可重复,即使是部署新手也能轻松上手。
✨ 主要功能
🚀 一键部署
只需一条命令即可完成从代码提交到生产环境的完整部署流程。
🐳 Docker 支持
原生支持 Docker 容器化部署,自动构建镜像并推送到仓库。
🔄 滚动更新
支持零停机滚动更新,自动健康检查,回滚机制保障安全。
📊 部署日志
完整的部署日志记录,方便排查问题和审计追踪。
🔔 通知集成
支持钉钉、Slack、邮件等多种通知方式,实时推送部署状态。
🏗️ 多环境支持
轻松管理开发、测试、生产等多套环境配置。
🛠️ 技术架构
核心组件
- 部署引擎:基于 Python 开发,提供统一的部署接口
- 配置管理:使用 YAML 格式的配置文件,易于理解和维护
- 容器编排:支持 Docker Compose 和 Kubernetes
- CI/CD 集成:无缝对接 GitHub Actions、GitLab CI
系统要求
- Python 3.8+
- Docker 20.10+ (可选,用于容器部署)
- Git
- Linux/macOS/Windows (WSL)
📖 快速开始
1. 安装
# 使用 pip 安装
pip install deploy-tool
# 或者克隆仓库
git clone https://github.com/yourname/deploy-tool.git
cd deploy-tool
pip install -r requirements.txt
2. 配置
创建部署配置文件 deploy.yaml:
project:
name: my-app
version: 1.0.0
server:
host: 192.168.1.100
user: deploy
key: ~/.ssh/id_rsa
deploy:
path: /var/www/my-app
pre_deploy:
- docker-compose down
post_deploy:
- docker-compose up -d
- docker-compose exec web python manage.py migrate
3. 执行部署
# 一键部署
deploy run
# 指定环境
deploy run --env production
# 查看部署状态
deploy status
🤔 适用场景
- 个人项目:快速部署博客、作品集网站
- 创业项目:小团队敏捷开发,减少运维负担
- 学习项目:实践 CI/CD,了解部署流程
- 企业内部:标准化部署流程,提升效率
📝 配置示例
Docker Compose 部署
deploy:
type: docker-compose
compose_file: docker-compose.prod.yml
services:
- web
- nginx
- postgres
Kubernetes 部署
deploy:
type: kubernetes
namespace: production
manifests:
- k8s/deployment.yaml
- k8s/service.yaml
- k8s/ingress.yaml
🔧 高级配置
回滚配置
rollback:
enabled: true
max_versions: 5
auto_rollback_on_failure: true
通知配置
notifications:
dingtalk:
webhook: https://oapi.dingtalk.com/robot/send?access_token=xxx
slack:
webhook: https://hooks.slack.com/services/xxx
📊 路线图
- v1.1:增加 Ansible 支持
- v1.2:支持 Helm Chart 部署
- v2.0:Web UI 管理界面
- v2.1:多集群管理
🤝 贡献指南
欢迎提交 Issue 和 Pull Request!请先阅读贡献指南。
💡 建议
如果你是第一次参与开源项目,这个项目是很好的练习机会。代码结构清晰,文档完善,适合新手入门!
📄 许可证
MIT License - 欢迎自由使用和修改~