添加 Nezha Agent 管理功能和完整文档系统
- 新增 Nezha Agent client_secret 更新 playbook(两种实现方案) - 建立三层文档架构:docs/(用户文档)、examples/(配置示例)、llmdoc/(技术文档) - 添加项目主 README.md 和配置示例文件 - 初始化 .gitignore 保护敏感信息
This commit is contained in:
33
llmdoc/architecture/ansible-project-structure.md
Normal file
33
llmdoc/architecture/ansible-project-structure.md
Normal 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 : '' }}`
|
||||
- 临时文件管理
|
||||
37
llmdoc/architecture/dynamic-parameter-building.md
Normal file
37
llmdoc/architecture/dynamic-parameter-building.md
Normal 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`,降低配置复杂度
|
||||
- 使用条件语法代替显式条件判断
|
||||
- 保持参数生成逻辑集中和清晰
|
||||
48
llmdoc/architecture/journald-configuration-flow.md
Normal file
48
llmdoc/architecture/journald-configuration-flow.md
Normal 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`: 日志突发速率限制
|
||||
38
llmdoc/architecture/security-architecture.md
Normal file
38
llmdoc/architecture/security-architecture.md
Normal 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. 设计原理
|
||||
|
||||
- 最小权限原则
|
||||
- 安全防御性编程
|
||||
- 日志可审计性
|
||||
31
llmdoc/architecture/xxxigcc-deployment-architecture.md
Normal file
31
llmdoc/architecture/xxxigcc-deployment-architecture.md
Normal 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、大页内存)
|
||||
Reference in New Issue
Block a user