毛球

毛球

技术爱好者 · 探索者

自动化部署工具

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 - 欢迎自由使用和修改~