# cloudkit **Repository Path**: liulei152/cloudkit ## Basic Information - **Project Name**: cloudkit - **Description**: 创建各种云ecs,包括主流云厂商阿里云、华为云、腾讯云、AWS等 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-16 - **Last Updated**: 2026-02-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
# 🌐 CloudKit —— 一站式跨云平台 ECS 实例管理工具 > **统一管理阿里云、腾讯云、华为云、AWS、Google Cloud 的云服务器(ECS/CVM/EC2)** > [English](./README.md) | **中文** [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![Python](https://img.shields.io/badge/python-3.12%2B-blue)](https://www.python.org)
--- ## 🌟 项目简介 **CloudKit** 是一个基于 Python 3.12+ 构建的现代化、模块化、高扩展性的**多云基础设施管理工具**。它通过统一的抽象层封装各大云服务商的 SDK 差异,为 DevOps 工程师、SRE 和云架构师提供一致的命令行接口(CLI)和api接口,实现对云服务器实例的**跨平台创建、查询、监控与销毁**。 ### ✨ 核心价值 - 🔁 **统一操作体验**:无需记忆不同云厂商的 API 差异,一套命令走天下 - 🛠️ **高效自动化**:支持脚本化部署与批量操作,提升运维效率 - 🧩 **插件式架构**:轻松扩展新云厂商支持,遵循适配器模式 - 🔐 **安全凭据管理**:基于环境变量或 `.env` 文件管理密钥,自动掩码输出 - 🖥️ **开发者友好 CLI**:交互式向导(Wizard)、彩色日志、智能默认值 ### ✅ 当前支持的云平台 | 云厂商 | 服务类型 | 支持功能 | |--------------|----------------|------------------------------| | 阿里云 | ECS | 列出、创建、删除实例 | | 腾讯云 | CVM | 列出、创建、删除实例 | | 华为云 | ECS | 列出、创建、删除实例 | | AWS | EC2 | 列出、创建、删除实例 | | Google Cloud | Compute Engine | 列出、创建、删除实例 | > 💡 后续计划支持:Azure、OCI、私有云(OpenStack) --- ## 🛠️ 快速入门 ### 1. 克隆项目 ```bash git clone https://gitee.com/liulei152/cloudkit cd cloudkit ``` ### 2. 创建并激活虚拟环境 ```bash # 创建虚拟环境 uv venv .venv # 激活(Linux/macOS) source .venv/bin/activate # 激活(Windows) .venv\Scripts\activate ``` ### 3. 安装依赖 ```bash # 同步安装依赖(推荐使用 uv) uv sync # 开发模式安装(便于本地调试) uv pip install -e . ``` --- ## 🚀 使用指南 ### 🔧 配置管理(`cloudkit config`) 首次使用需进行身份认证与默认设置: ```bash # 启动交互式配置向导(推荐) cloudkit config # 或手动触发向导 cloudkit config wizard # 查看当前配置状态 cloudkit config list # 设置默认云厂商 cloudkit config default-provider aws # 查看当前默认厂商 cloudkit config default-provider ``` ### 🖥️ 实例操作命令 | 命令 | 功能说明 | | ------ |------ | | `cloudkit list-instances` | 列出当前云厂商的所有云服务器实例 | | `cloudkit create-instance` | 交互式创建新实例(支持参数定制) | | `cloudkit delete-instance ` | 删除指定实例(支持批量) | | `cloudkit describe-instance ` | 查看实例详细信息 | ### 🧩 示例:创建一个阿里云 ECS 实例 ```bash cloudkit create-instance \ --name my-web-server \ --type ecs.n4.small \ --image centos_8_5_x64 \ --region cn-hangzhou ``` --- ## 🏗️ 架构设计 CloudKit 采用清晰的分层架构与模块化设计,确保可维护性与可扩展性: ```text src/ ├── api/ # API相关模块 ├── cli/ # 命令行接口模块 ├── constants/ # 常量定义 ├── core/ # 核心功能模块(应用、配置、凭证、日志等) ├── models/ # 数据模型 ├── providers/ # 各大云服务提供商的实现 ├── services/ # 服务层 ├── strategies/ # 策略模式相关 ├── utils/ # 工具函数 └── main.py # 主入口文件 ``` ### 🧠 设计理念 - **统一接口抽象**:所有云厂商实现 `InstanceService` 接口,保证行为一致性 - **适配器模式**:新增云平台只需实现对应服务类,无需修改核心逻辑 - **环境驱动配置**:支持 `.env`、环境变量、配置文件多方式加载 - **CLI 友好体验**:支持子命令、自动补全、彩色输出、错误提示友好 - **可测试性优先**:核心逻辑解耦,便于单元测试与集成测试 --- ## 📦 依赖管理(uv 推荐) 本项目使用 [uv](https://docs.astral.sh/uv/) 作为默认包管理工具,替代传统 `pip` + `venv` 组合,具备更快的解析与安装速度。 ### 常用命令速查 ```bash # 创建虚拟环境 uv venv .venv # 激活环境 source .venv/bin/activate # 安装依赖 uv sync # 安装为可编辑包(开发模式) uv pip install -e . # 导出依赖清单(可选) uv pip freeze > requirements.txt # 运行测试 uv run pytest ``` --- ## 🤝 贡献指南 欢迎提交 Issue 或 Pull Request!请遵循以下流程: 1. Fork 项目仓库 2. 创建特性分支(`git checkout -b feat/new-provider-azure`) 3. 编写代码并添加测试 4. 提交 PR,附上清晰描述与变更说明 5. 等待 CI 通过与代码审查 我们遵循 [Conventional Commits](https://www.conventionalcommits.org/) 规范,提交信息建议格式:`(): `。 --- ## 📞 联系我们 - **👤 联系人**:Shenyi - 📧 邮箱:`1245332635@qq.com` ---