Metadata-Version: 2.3
Name: iamt
Version: 1.1.48
Summary: 这是一个灵活的自动化运维工具
Author: lipanpan
Author-email: lipanpan <lipanpanmail@163.com>
Requires-Dist: fabric>=3.2.2
Requires-Dist: fire>=0.7.1
Requires-Dist: gitpython>=3.1.46
Requires-Dist: jinja2>=3.1.6
Requires-Dist: prompt-toolkit>=3.0.52
Requires-Dist: pyperclip>=1.11.0
Requires-Dist: pyyaml>=6.0.3
Requires-Dist: questionary>=2.1.1
Requires-Dist: rich>=14.2.0
Requires-Dist: toml>=0.10.2
Requires-Python: ~=3.13.0
Description-Content-Type: text/markdown

# iamt(本项目使用智谱GLM系列模型辅助开发)

一个灵活的自动化运维工具，提供 SSH 连接管理、Docker Compose 部署、任务执行和角色配置等功能。

## 功能特性

- **SSH 连接管理** - 支持密码/私钥认证，自动收集主机信息（类似 Ansible setup 模块）
- **Docker Compose 部署** - 内置 80+ 预配置模块，支持一键部署到远程服务器
- **任务系统** - 基于 Fabric 的任务管理，支持交互式选择和配置文件执行
- **角色系统** - 预定义的配置脚本，快速设置开发环境
- **命令行执行** - 本地/远程命令执行，支持模糊搜索补全

## 安装

```bash
# 使用 pip 安装
pip install iamt

# 或使用 uv 安装
uv pip install iamt
```

## 快速开始

### 1. 配置主机

首次运行时，工具会交互式引导你创建配置文件：

```bash
iamt test
```

或手动创建 `iamt.yaml`：

```yaml
hosts:
  my-server:
    host: 192.168.1.100
    port: 22
    user: ubuntu
    auth_method: password
    password: your-password
    sudo_password: your-sudo-password
```

### 2. Docker Compose 部署

```bash
# 列出所有可用模块
iamt dcd ls

# 交互式部署
iamt dcd x

# 从配置文件部署
iamt dcd file
```

### 3. 任务管理

```bash
# 列出所有可用任务
iamt task ls

# 交互式执行任务
iamt task run
```

### 4. 角色执行

```bash
# 列出所有可用角色
iamt role ls

# 交互式执行角色
iamt role run
```

## CLI 命令

| 命令 | 说明 |
|------|------|
| `iamt test [hostname]` | 测试 SSH 连接 |
| `iamt list_modules` | 列出所有模块 |
| `iamt list_hostvars [hostname]` | 列出主机变量 |
| `iamt dcd ls` | 列出 Docker Compose 模块 |
| `iamt dcd x` | 交互式部署 Docker Compose |
| `iamt dcd file` | 从配置文件部署 |
| `iamt task ls` | 列出可用任务 |
| `iamt task run` | 交互式执行任务 |
| `iamt role ls` | 列出可用角色 |
| `iamt role run` | 交互式执行角色 |
| `iamt rler` | 交互式执行远程命令 |
| `iamt rlel` | 交互式执行本地命令 |
| `iamt rfx` | 从配置文件执行任务 |

> 提示: `am` 和 `amt` 是 `iamt` 的别名，可以互换使用。

## 内置 Docker Compose 模块

项目内置了丰富的 Docker Compose 模板，按类别组织：

| 类别 | 模块示例 |
|------|----------|
| AI 客户端 | OpenWebUI, LibreChat, NextChat |
| AI 工作流 | Dify, FastGPT, n8n, LangFlow |
| LLM API | LiteLLM, OneAPI, NewAPI |
| RAG | RagFlow, QAnything, Kotaemon |
| MCP | MCP Gateway, MCP Proxy |
| 数据库 | MySQL, MongoDB, PostgreSQL, Redis |
| 存储 | MinIO, Nextcloud, Seafile |
| 监控 | Prometheus, Grafana |
| CI/CD | GitLab, SonarQube |
| 代理 | V2Ray, Mihomo |
| 媒体 | Navidrome, Koel |

## 配置文件示例

### DCD 配置文件 (`.dcd.yaml`)

```yaml
hostname: my-server
tasks:
  - task: dcdtask.deploy_compose_module
    args:
      local_path: src/iamt/composes/5557AICLIENT/openwebui
      remote_dir: /opt/docker/openwebui
      force: false
  - task: dcdtask.compose_up
    args:
      remote_dir: /opt/docker/openwebui
```

### Role 配置文件 (`.role.yaml`)

```yaml
hostname: my-server
tasks:
  - task: ubuntud.setup_ubuntu_desktop
    args: {}
```

## 开发

```bash
# 克隆仓库
git clone https://github.com/lipanpan/iamt.git
cd iamt

# 创建虚拟环境
uv venv
.venv\Scripts\activate  # Windows
# source .venv/bin/activate  # Linux/macOS

# 安装开发依赖
uv pip install -e .
```

## 依赖

- Python 3.13
- Fabric - SSH 连接管理
- Fire - CLI 框架
- Rich - 终端美化输出
- Prompt Toolkit - 交互式输入
- Questionary - 交互式问答

## 作者

lipanpan (lipanpanmail@163.com)
