添加 Nezha Agent 管理功能和完整文档系统

- 新增 Nezha Agent client_secret 更新 playbook(两种实现方案)
- 建立三层文档架构:docs/(用户文档)、examples/(配置示例)、llmdoc/(技术文档)
- 添加项目主 README.md 和配置示例文件
- 初始化 .gitignore 保护敏感信息
This commit is contained in:
Wang Defa
2025-12-16 10:52:38 +08:00
parent f08326fec3
commit 167fad20eb
32 changed files with 2090 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
# Ansible 项目架构设计
## 1. 身份与目的
- **项目定位**:自动化安装和配置系统组件的 Ansible Playbook 集
- **主要功能**:提供模块化、可配置的安装和卸载流程
## 2. 核心组件
- `xxxigcc_install.yaml`:系统组件安装主 Playbook
- `xxxigcc_uninstall.yaml`:系统组件卸载 Playbook
- `journald_configure.yml`:日志系统配置 Playbook
## 3. 执行流程LLM 检索映射)
### 安装流程
1. **参数准备**`ansible.builtin.set_fact` 动态构建安装参数
2. **下载脚本**`ansible.builtin.get_url` 获取安装脚本
3. **执行安装**`ansible.builtin.shell` 运行安装命令
4. **结果记录**`ansible.builtin.debug` 输出执行日志
5. **清理资源**`ansible.builtin.file` 移除临时文件
## 4. 设计原则
- 高度参数化:支持丰富的可选配置开关
- 模块解耦:每个 Playbook 专注单一功能
- 动态命令构建:根据参数灵活生成执行命令
## 5. 关键设计模式
- 特权执行:使用 `become: yes`
- 条件渲染:`{{ condition ? value : '' }}`
- 临时文件管理

View File

@@ -0,0 +1,37 @@
# 动态参数构建架构
## 1. 身份定义
- **定义:** 一种通过条件逻辑动态生成命令行参数的 Ansible 技术模式
- **目的:** 根据变量状态灵活构建命令,实现高度可配置的安装/卸载脚本
## 2. 核心组件
- `xxxigcc_install.yaml:22-35`: 动态参数构建的关键实现区域
- `ansible.builtin.set_fact`: 用于动态生成 `install_command`
## 3. 执行流程LLM检索映射
1. **参数定义**:在 `vars` 部分预定义布尔开关
- 例如:`enable_keepalive``enable_1gb_pages`
2. **条件参数生成**:使用 Jinja2 条件语法
```yaml
{{ '--keepalive' if enable_keepalive else '' }}
```
3. **命令构建**:通过 `set_fact` 拼接最终命令
- 根据布尔变量动态添加/移除参数
- 支持复杂的条件逻辑(如 `enable_cc and enable_cc_tls`
## 4. 设计原理
- **灵活性**:通过布尔开关实现细粒度配置控制
- **可读性**:使用声明式语法,避免复杂的编程逻辑
- **可扩展性**:易于添加新的可选参数和配置
## 5. 关键实践
- 默认值设置为 `true`,降低配置复杂度
- 使用条件语法代替显式条件判断
- 保持参数生成逻辑集中和清晰

View File

@@ -0,0 +1,48 @@
# Systemd-Journald 日志配置管理架构
## 1. 身份
- **目的:** 通过 Ansible Playbook 管理和优化 systemd-journald 日志配置
- **核心功能:** 提供自动化、可重复且可控制的日志管理策略
## 2. 核心组件
- `journald_configure.yml` (主要配置剧本): 负责整个日志配置管理流程
- `journald_config` (变量集): 定义日志配置参数和限制
## 3. 执行流程LLM 检索图)
### 3.1 备份阶段
- **步骤:** 使用 `ansible.builtin.copy` 备份原始 `journald.conf`
- **条件:** `backup_journald` 变量为 `true`
- **备份路径:** `/etc/systemd/journald.conf.backup.[timestamp]`
### 3.2 配置部署
- **步骤:** 使用 `ansible.builtin.copy` 部署新的 `journald.conf`
- **配置参数:**
- 日志总体空间限制
- 单文件日志大小限制
- 日志保留时间
- 日志速率控制
### 3.3 服务管理
- **触发重启:** 通过 handler `重启 systemd-journald`
- **触发条件:** 配置文件发生变更
### 3.4 验证与监控
- **服务状态检查:** 使用 `ansible.builtin.systemd` 模块
- **磁盘使用监控:** 执行 `journalctl --disk-usage`
## 4. 设计原理
- **幂等性:** 确保多次执行不会产生意外副作用
- **安全性:** 防止日志炸弹,限制日志资源消耗
- **可追溯性:** 通过备份机制保留配置变更历史
## 5. 关键变量和参数
- `system_max_use`: 总日志空间限制
- `system_max_file_size`: 单文件日志大小限制
- `max_retention_sec`: 日志保留时间
- `rate_limit_interval_sec`: 日志速率限制时间间隔
- `rate_limit_burst`: 日志突发速率限制

View File

@@ -0,0 +1,38 @@
# 安全架构和权限管理
## 1. 身份和目的
- **定义**:基于 Ansible 的安全和权限管理系统
- **目的**:通过精细的权限控制和安全机制,确保自动化部署的安全性
## 2. 核心安全组件
### 权限提升机制
- **技术**`become: yes`
- **位置**:所有 Playbook`xxxigcc_install.yaml`, `xxxigcc_uninstall.yaml`
- **功能**:使用 sudo 权限执行关键任务
### 脚本下载安全
- **证书验证**`validate_certs: yes`
- **文件权限**`mode: '0755'`
- **更新机制**`force: yes``backup: yes`
### 日志安全
- **位置**`journald_configure.yml`
- **关键配置**
- 限制日志总大小
- 防止日志炸弹攻击
- 日志保留策略
## 3. 执行流程
1. 权限申请:`become: yes`
2. 安全下载:验证证书、限制权限
3. 脚本执行:受限执行环境
4. 日志记录:受控日志系统
## 4. 设计原理
- 最小权限原则
- 安全防御性编程
- 日志可审计性

View File

@@ -0,0 +1,31 @@
# XXXigCC 部署架构
## 1. 身份标识
- **定义:** 一个灵活的自动化部署和管理系统
- **目的:** 通过 Ansible Playbook 实现跨主机的自动化 XXXigCC 安装和卸载
## 2. 核心组件
- `xxxigcc_install.yaml`: 负责 XXXigCC 的安装流程
- `xxxigcc_uninstall.yaml`: 负责 XXXigCC 的卸载流程
## 3. 执行流程LLM 检索路径)
### 安装流程
1. **脚本准备:** 从固定 URL 下载安装脚本到 `/tmp/install.deb.sh`
2. **命令构建:** 根据布尔参数动态生成安装命令
3. **权限设置:** 设置脚本执行权限 `0755`
4. **执行安装:** 使用 Ansible 的 `shell` 模块执行安装
5. **清理临时文件:** 删除下载的安装脚本
### 卸载流程
1. **脚本准备:** 从固定 URL 下载卸载脚本到 `/tmp/uninstall.sh`
2. **执行卸载:** 使用 `-y --purge` 参数完全卸载
3. **清理临时文件:** 删除下载的卸载脚本
## 4. 设计原理
- 使用动态参数生成,增强灵活性
- 严格的安全下载和执行机制
- 支持多种功能开关TLS、Keepalive、大页内存