# 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://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`
---