添加 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、大页内存)
|
||||
59
llmdoc/guides/ansible-best-practices.md
Normal file
59
llmdoc/guides/ansible-best-practices.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# Ansible 最佳实践指南
|
||||
|
||||
## 1. 参数管理
|
||||
|
||||
### 变量定义
|
||||
1. **明确区分必填和可选参数**
|
||||
2. **使用布尔开关控制功能**
|
||||
3. **默认值设置要合理**
|
||||
|
||||
示例:
|
||||
```yaml
|
||||
vars:
|
||||
# 必填参数
|
||||
pool_url: ""
|
||||
|
||||
# 可选参数
|
||||
enable_cc: true # 默认开启某些功能
|
||||
```
|
||||
|
||||
## 2. 模块使用
|
||||
|
||||
### 推荐模块
|
||||
- `ansible.builtin.set_fact`:动态构建参数
|
||||
- `ansible.builtin.debug`:日志和调试
|
||||
- `ansible.builtin.get_url`:文件下载
|
||||
- `ansible.builtin.shell`:执行复杂命令
|
||||
- `ansible.builtin.file`:文件管理
|
||||
|
||||
## 3. 命令构建
|
||||
|
||||
### 条件渲染技巧
|
||||
1. 使用三元运算符动态生成命令
|
||||
2. 根据布尔开关添加可选参数
|
||||
|
||||
```yaml
|
||||
install_command: >-
|
||||
bash script.sh
|
||||
{{ '--optional-flag' if enable_feature else '' }}
|
||||
```
|
||||
|
||||
## 4. 安全与权限
|
||||
|
||||
### 特权执行
|
||||
- 始终使用 `become: yes`
|
||||
- 谨慎管理 `sudo` 权限
|
||||
|
||||
## 5. 错误处理
|
||||
|
||||
### 日志与调试
|
||||
1. 使用 `register` 捕获命令输出
|
||||
2. 通过 `debug` 模块记录执行过程
|
||||
3. 考虑添加更详细的错误处理机制
|
||||
|
||||
## 6. 性能与维护
|
||||
|
||||
### 代码组织
|
||||
- 保持 Playbook 模块化
|
||||
- 减少重复代码
|
||||
- 添加充分的注释说明
|
||||
64
llmdoc/guides/how-to-configure-journald.md
Normal file
64
llmdoc/guides/how-to-configure-journald.md
Normal file
@@ -0,0 +1,64 @@
|
||||
# 如何配置和管理 Journald 日志
|
||||
|
||||
## 先决条件
|
||||
|
||||
- 已安装 Ansible
|
||||
- 目标服务器已配置 SSH 访问
|
||||
- 拥有对目标服务器的 sudo/root 权限
|
||||
|
||||
## 配置步骤
|
||||
|
||||
### 1. 编辑配置变量
|
||||
|
||||
打开 `journald_configure.yml`,根据需求修改 `journald_config` 变量:
|
||||
|
||||
```yaml
|
||||
journald_config:
|
||||
system_max_use: "500M" # 总日志空间限制
|
||||
system_max_file_size: "100M" # 单文件日志大小限制
|
||||
max_retention_sec: "7day" # 日志保留时间
|
||||
rate_limit_interval_sec: "30s" # 日志速率限制间隔
|
||||
rate_limit_burst: "10000" # 日志突发速率限制
|
||||
```
|
||||
|
||||
### 2. 控制备份行为
|
||||
|
||||
通过 `backup_journald` 变量控制是否在应用新配置前备份当前 `journald.conf`:
|
||||
|
||||
```yaml
|
||||
backup_journald: true # 启用备份
|
||||
```
|
||||
|
||||
### 3. 执行 Playbook
|
||||
|
||||
使用以下命令运行 Playbook:
|
||||
|
||||
```bash
|
||||
ansible-playbook journald_configure.yml
|
||||
```
|
||||
|
||||
### 4. 验证配置
|
||||
|
||||
Playbook 将自动:
|
||||
- 备份原始配置文件
|
||||
- 部署新配置
|
||||
- 重启 systemd-journald 服务
|
||||
- 显示服务状态
|
||||
- 报告日志磁盘使用情况
|
||||
|
||||
## 常见问题与解决方案
|
||||
|
||||
1. **配置未生效?**
|
||||
- 检查 Ansible 执行输出
|
||||
- 确认 SSH 连接和权限
|
||||
- 验证目标服务器的 systemd 版本兼容性
|
||||
|
||||
2. **日志空间不足?**
|
||||
- 增加 `system_max_use` 值
|
||||
- 减少 `max_retention_sec`
|
||||
|
||||
## 最佳实践
|
||||
|
||||
- 定期审核和调整日志配置
|
||||
- 监控日志磁盘使用情况
|
||||
- 根据系统负载动态调整参数
|
||||
44
llmdoc/guides/how-to-deploy-xxxigcc.md
Normal file
44
llmdoc/guides/how-to-deploy-xxxigcc.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# 如何部署和卸载 XXXigCC
|
||||
|
||||
## 1. 准备部署
|
||||
|
||||
### 必填参数
|
||||
- `pool_url`:资源池 URL
|
||||
- `cc_url`:控制中心 URL
|
||||
- `cc_token`:控制中心访问令牌
|
||||
|
||||
### 可选参数
|
||||
以下是默认启用的可选参数:
|
||||
- `enable_cc`:启用控制中心(默认 true)
|
||||
- `enable_tls`:启用 TLS(默认 true)
|
||||
- `enable_cc_tls`:启用控制中心 TLS(默认 true)
|
||||
- `enable_keepalive`:保持连接(默认 true)
|
||||
- `enable_1gb_pages`:使用大页内存(默认 true)
|
||||
|
||||
## 2. 安装 XXXigCC
|
||||
|
||||
### 步骤
|
||||
1. 准备 Ansible Playbook:`xxxigcc_install.yaml`
|
||||
2. 配置必填和可选参数
|
||||
3. 使用命令执行:
|
||||
```bash
|
||||
ansible-playbook xxxigcc_install.yaml -e pool_url=http://example.com -e cc_url=http://control.center -e cc_token=your_token
|
||||
```
|
||||
|
||||
## 3. 卸载 XXXigCC
|
||||
|
||||
### 步骤
|
||||
1. 准备 Ansible Playbook:`xxxigcc_uninstall.yaml`
|
||||
2. 执行卸载命令:
|
||||
```bash
|
||||
ansible-playbook xxxigcc_uninstall.yaml
|
||||
```
|
||||
|
||||
### 注意事项
|
||||
- 卸载将完全删除 XXXigCC 及其相关组件
|
||||
- 使用 `-y --purge` 参数确保彻底卸载
|
||||
|
||||
## 4. 验证部署
|
||||
|
||||
- 检查安装/卸载输出日志
|
||||
- 验证服务运行状态
|
||||
33
llmdoc/guides/security-best-practices.md
Normal file
33
llmdoc/guides/security-best-practices.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# 安全最佳实践指南
|
||||
|
||||
## 1. 权限管理
|
||||
|
||||
### Sudo 权限使用
|
||||
1. **始终** 使用 `become: yes`
|
||||
2. 仅在必要时提升权限
|
||||
3. 避免使用全局 root 权限
|
||||
|
||||
### 脚本下载安全
|
||||
1. 始终启用证书验证 `validate_certs: yes`
|
||||
2. 限制下载脚本权限 `mode: '0755'`
|
||||
3. 使用 HTTPS 下载源
|
||||
|
||||
## 2. 日志安全
|
||||
|
||||
### 日志配置最佳实践
|
||||
1. 限制日志总大小(默认 500M)
|
||||
2. 控制单个日志文件大小(默认 100M)
|
||||
3. 设置日志保留期限(默认 7 天)
|
||||
4. 启用日志速率限制
|
||||
|
||||
### 防御策略
|
||||
1. 防止日志炸弹攻击
|
||||
2. 定期审查日志配置
|
||||
3. 备份重要日志
|
||||
|
||||
## 3. 安全检查清单
|
||||
|
||||
- [ ] 验证所有下载脚本的来源
|
||||
- [ ] 检查 sudo 权限使用范围
|
||||
- [ ] 审核日志配置
|
||||
- [ ] 定期更新和补丁
|
||||
44
llmdoc/guides/using-dynamic-parameters.md
Normal file
44
llmdoc/guides/using-dynamic-parameters.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# 如何使用动态参数构建模式
|
||||
|
||||
## 前提条件
|
||||
|
||||
- 已安装 Ansible
|
||||
- 拥有 Ansible Playbook 的执行权限
|
||||
|
||||
## 步骤指南
|
||||
|
||||
1. **定义必填参数**
|
||||
```yaml
|
||||
vars:
|
||||
pool_url: "https://your-pool-url.com"
|
||||
cc_url: "https://your-cc-url.com"
|
||||
cc_token: "your-secret-token"
|
||||
```
|
||||
|
||||
2. **配置可选参数**
|
||||
```yaml
|
||||
vars:
|
||||
enable_cc: true # 启用控制中心
|
||||
enable_tls: true # 启用传输层安全
|
||||
enable_keepalive: false # 关闭长连接
|
||||
enable_1gb_pages: true # 启用大页内存
|
||||
```
|
||||
|
||||
3. **理解参数影响**
|
||||
- `true` 将添加对应的命令行参数
|
||||
- `false` 将移除对应的命令行参数
|
||||
|
||||
4. **执行 Playbook**
|
||||
```bash
|
||||
ansible-playbook xxxigcc_install.yaml
|
||||
```
|
||||
|
||||
## 高级技巧
|
||||
|
||||
- 可以在 `group_vars` 或 `host_vars` 中预置默认配置
|
||||
- 支持复杂的条件参数,如仅在特定条件下启用 TLS
|
||||
|
||||
## 常见陷阱
|
||||
|
||||
- 确保 `pool_url`、`cc_url`、`cc_token` 正确配置
|
||||
- 布尔参数默认为 `true`,需要显式设置为 `false` 才会禁用
|
||||
50
llmdoc/guides/using-project-documentation.md
Normal file
50
llmdoc/guides/using-project-documentation.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# 如何使用项目文档和示例
|
||||
|
||||
## 1. 文档目录 (docs/)
|
||||
|
||||
`docs/` 目录提供了详细的用户文档,包括:
|
||||
|
||||
- `nezha_update_secret_README.md`: Nezha Agent 配置更新指南
|
||||
- `QUICKSTART_nezha.md`: Nezha Agent 快速入门指南
|
||||
- `README.md`: 项目文档入口
|
||||
|
||||
### 使用建议
|
||||
|
||||
1. 首先阅读 `README.md`,了解项目整体情况
|
||||
2. 根据需求查看相应的专项文档
|
||||
3. 遵循文档中的操作步骤和最佳实践
|
||||
|
||||
## 2. 示例目录 (examples/)
|
||||
|
||||
`examples/` 目录包含各种配置文件示例:
|
||||
|
||||
- `inventory.example.ini`: Ansible Inventory 配置示例
|
||||
- `nezha_vars.example.yml`: Nezha Agent 变量配置示例
|
||||
- `xxxigcc_vars.example.yml`: XXXigCC 部署变量示例
|
||||
- `journald_vars.example.yml`: Journald 配置变量示例
|
||||
|
||||
### 使用步骤
|
||||
|
||||
1. 复制相应的 `.example` 文件
|
||||
2. 根据自己的环境修改配置
|
||||
3. 在 Playbook 执行时使用修改后的配置文件
|
||||
|
||||
## 3. 快速复制配置示例
|
||||
|
||||
```bash
|
||||
# 复制 Nezha Agent 变量示例
|
||||
cp examples/nezha_vars.example.yml nezha_vars.yml
|
||||
|
||||
# 编辑配置文件
|
||||
vim nezha_vars.yml
|
||||
|
||||
# 使用配置文件执行 Playbook
|
||||
ansible-playbook nezha_update_secret.yml -e @nezha_vars.yml
|
||||
```
|
||||
|
||||
## 4. 推荐实践
|
||||
|
||||
- 始终保留 `.example` 文件作为参考
|
||||
- 将个性化配置文件添加到 `.gitignore`
|
||||
- 不要直接修改示例文件
|
||||
- 为不同的环境创建不同的配置文件副本
|
||||
64
llmdoc/index.md
Normal file
64
llmdoc/index.md
Normal file
@@ -0,0 +1,64 @@
|
||||
# Gitea Ansible Playbook 自动化部署项目索引
|
||||
|
||||
## 项目简介
|
||||
|
||||
本项目是一个专业的 Ansible Playbook 工具集,专门设计用于 Gitea 服务的自动化部署、配置和管理。通过模块化和高度可配置的方法,简化了 Gitea 服务的运维工作。
|
||||
|
||||
## 文档导航
|
||||
|
||||
### 概览
|
||||
- [项目概览](/overview/project-overview.md): 项目目标、技术栈和核心特性的完整介绍
|
||||
- [文档和示例使用指南](/guides/using-project-documentation.md): 如何有效利用项目文档和示例
|
||||
|
||||
### 指南
|
||||
1. [文档和示例使用指南](/guides/using-project-documentation.md): 详细解释项目文档和示例目录的使用方法
|
||||
2. [Gitea 部署指南](/guides/how-to-deploy-xxxigcc.md): 详细的 Gitea 服务安装步骤
|
||||
3. [动态参数使用](/guides/using-dynamic-parameters.md): 如何利用动态参数配置
|
||||
4. [Journald 配置指南](/guides/how-to-configure-journald.md): 系统日志配置最佳实践
|
||||
5. [安全最佳实践](/guides/security-best-practices.md): 确保 Gitea 部署安全性
|
||||
|
||||
### 架构
|
||||
1. [项目架构](/architecture/ansible-project-structure.md): Ansible Playbook 的整体结构解析
|
||||
2. [安全架构](/architecture/security-architecture.md): 系统安全设计
|
||||
3. [动态参数构建](/architecture/dynamic-parameter-building.md): 参数处理机制
|
||||
4. [Journald 配置流程](/architecture/journald-configuration-flow.md): 日志配置内部工作原理
|
||||
|
||||
### 参考
|
||||
1. [Ansible 模块列表](/reference/ansible-modules-used.md): 项目中使用的关键 Ansible 模块
|
||||
2. [Gitea 参数规范](/reference/xxxigcc-parameters.md): 详细的参数配置指南
|
||||
3. [安全清单](/reference/security-checklist.md): 部署安全检查清单
|
||||
4. [Git 提交规范](/reference/git-conventions.md): 代码提交与协作指南
|
||||
5. [Jinja2 参数模式](/reference/jinja2-parameter-patterns.md): 参数渲染高级用法
|
||||
6. [编码规范](/reference/coding-conventions.md): 项目编码风格指南
|
||||
7. [Journald 参数](/reference/journald-parameters.md): 日志系统详细参数
|
||||
|
||||
## 目录结构指南
|
||||
|
||||
### docs/ (用户文档)
|
||||
专业、详细的用户指南和操作文档
|
||||
|
||||
### examples/ (配置示例)
|
||||
各种功能和场景的配置模板和示例文件
|
||||
|
||||
### llmdoc/ (技术文档系统)
|
||||
为 AI 代理提供结构化、可检索的技术文档
|
||||
|
||||
## 快速入门
|
||||
|
||||
1. 阅读[项目概览](/overview/project-overview.md)了解项目背景
|
||||
2. 查看[文档和示例使用指南](/guides/using-project-documentation.md)
|
||||
3. 查看[部署指南](/guides/how-to-deploy-xxxigcc.md)开始安装
|
||||
4. 参考[参考文档](/reference/xxxigcc-parameters.md)进行详细配置
|
||||
|
||||
## 贡献与支持
|
||||
|
||||
- 遵循[安全最佳实践](/guides/security-best-practices.md)
|
||||
- 查看[编码规范](/reference/coding-conventions.md)了解贡献指南
|
||||
|
||||
## 许可与版权
|
||||
|
||||
请参阅项目根目录下的 LICENSE 文件。
|
||||
|
||||
## 版本信息
|
||||
|
||||
最后更新时间: 2024年12月16日
|
||||
63
llmdoc/overview/project-overview.md
Normal file
63
llmdoc/overview/project-overview.md
Normal file
@@ -0,0 +1,63 @@
|
||||
# Gitea Ansible Playbook 自动化部署项目
|
||||
|
||||
## 1. 身份定义
|
||||
|
||||
- **项目类型:** Ansible 自动化部署工具集
|
||||
- **主要目的:** 简化 Gitea 服务的安装、配置和系统集成
|
||||
|
||||
## 2. 高级描述
|
||||
|
||||
这是一个专为 Gitea 服务设计的 Ansible Playbook 自动化部署项目。通过模块化的 Ansible Playbook,该项目提供了灵活、可配置的部署解决方案,支持 Gitea 服务的快速安装、个性化配置和便捷卸载。
|
||||
|
||||
## 3. 目录结构
|
||||
|
||||
### 主要目录
|
||||
|
||||
- `docs/`: 面向人类用户的详细文档
|
||||
- 提供深入的使用指南、配置说明和最佳实践
|
||||
- 包含 Nezha Agent、XXXigCC 等功能的专项文档
|
||||
|
||||
- `examples/`: 配置文件示例
|
||||
- 提供各种 Playbook 和功能的配置模板
|
||||
- 包括 Inventory、变量定义等示例文件
|
||||
|
||||
- `llmdoc/`: LLM 友好的技术文档系统
|
||||
- 为 AI 代理提供结构化、可检索的技术文档
|
||||
|
||||
### 重要目录说明
|
||||
|
||||
- 文档按功能和技术维度组织,方便快速定位和理解
|
||||
- 示例文件有助于快速理解和复制配置
|
||||
|
||||
## 4. 核心组件
|
||||
|
||||
### 主要 Playbook
|
||||
- `xxxigcc_install.yaml`: Gitea 服务安装
|
||||
- `xxxigcc_uninstall.yaml`: Gitea 服务卸载
|
||||
- `journald_configure.yml`: 系统日志配置
|
||||
- `nezha_update_secret.yml`: Nezha Agent 更新
|
||||
|
||||
### 关键特性
|
||||
- 模块化设计
|
||||
- 灵活的参数配置
|
||||
- 支持动态参数渲染
|
||||
- 使用常见 Ansible 模块进行系统交互
|
||||
|
||||
## 5. 技术栈
|
||||
|
||||
- **主要工具:** Ansible
|
||||
- **配置语言:** YAML
|
||||
- **目标系统:** Linux 服务器
|
||||
- **关键 Ansible 模块:**
|
||||
- `ansible.builtin.set_fact`
|
||||
- `ansible.builtin.shell`
|
||||
- `ansible.builtin.file`
|
||||
|
||||
## 6. 使用场景
|
||||
|
||||
适用于需要自动化部署和管理 Gitea 服务的运维团队,特别是追求配置灵活性和可重复性的场景。重点关注:
|
||||
|
||||
- 自动化 Nezha Agent 配置
|
||||
- XXXigCC 的部署与管理
|
||||
- 系统日志配置
|
||||
- 安全且可重复的自动化部署
|
||||
47
llmdoc/reference/ansible-modules-used.md
Normal file
47
llmdoc/reference/ansible-modules-used.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# Ansible 模块参考
|
||||
|
||||
## 核心模块列表
|
||||
|
||||
### 1. ansible.builtin.set_fact
|
||||
- **用途**:动态构建和设置变量
|
||||
- **示例**:`ansible.builtin.set_fact: install_command="..."`
|
||||
|
||||
### 2. ansible.builtin.debug
|
||||
- **用途**:输出调试信息和变量
|
||||
- **关键参数**:
|
||||
- `msg`:直接打印消息
|
||||
- `var`:打印变量值
|
||||
|
||||
### 3. ansible.builtin.get_url
|
||||
- **用途**:从远程 URL 下载文件
|
||||
- **关键参数**:
|
||||
- `url`:文件源地址
|
||||
- `dest`:目标路径
|
||||
- `mode`:文件权限
|
||||
|
||||
### 4. ansible.builtin.shell
|
||||
- **用途**:执行复杂的 Shell 命令
|
||||
- **注意事项**:
|
||||
- 比 `command` 模块更灵活
|
||||
- 支持管道和重定向
|
||||
|
||||
### 5. ansible.builtin.file
|
||||
- **用途**:文件和目录管理
|
||||
- **常用状态**:
|
||||
- `present`:确保文件存在
|
||||
- `absent`:确保文件不存在
|
||||
- `directory`:确保目录存在
|
||||
|
||||
## 使用场景映射
|
||||
|
||||
- 文件下载:`get_url`
|
||||
- 动态参数:`set_fact`
|
||||
- 命令执行:`shell`
|
||||
- 日志记录:`debug`
|
||||
- 文件清理:`file`
|
||||
|
||||
## 最佳实践提示
|
||||
|
||||
1. 优先使用专用模块
|
||||
2. 谨慎使用 `shell` 模块
|
||||
3. 始终关注安全性和幂等性
|
||||
65
llmdoc/reference/coding-conventions.md
Normal file
65
llmdoc/reference/coding-conventions.md
Normal file
@@ -0,0 +1,65 @@
|
||||
# Ansible 与 YAML 编码规范
|
||||
|
||||
## YAML 格式规范
|
||||
|
||||
### 基本格式
|
||||
- 使用 `---` 作为 YAML 文件开头
|
||||
- 缩进严格使用 **2 个空格**
|
||||
- 禁止使用制表符 `\t`
|
||||
- 保持每行末尾无多余空白
|
||||
|
||||
### 文件命名
|
||||
- Playbook 文件使用 `snake_case`
|
||||
- 文件扩展名为 `.yml`
|
||||
|
||||
## Ansible 编码规范
|
||||
|
||||
### 变量命名
|
||||
- 变量名使用 `snake_case`
|
||||
- 布尔变量使用肯定语气命名,如 `enable_feature`
|
||||
- 使用有意义的、描述性的变量名
|
||||
|
||||
### Playbook 结构
|
||||
- 每个 Playbook 应包含:
|
||||
1. `name`: 描述性标题
|
||||
2. `hosts`: 目标主机
|
||||
3. `vars`: 变量定义区
|
||||
4. `tasks`: 任务列表
|
||||
5. 可选 `handlers`: 触发的服务重启/重载任务
|
||||
|
||||
### 任务编写
|
||||
- 每个任务使用 `name` 描述具体操作
|
||||
- 优先使用 `ansible.builtin` 模块
|
||||
- 添加 `when` 条件控制任务执行
|
||||
- 使用 `register` 捕获任务输出
|
||||
- 通过 `changed_when: false` 控制任务变更状态
|
||||
|
||||
### 注释规范
|
||||
- 使用 `#` 添加注释
|
||||
- 注释应解释"为什么",而非"做什么"
|
||||
- 在复杂配置处添加必要的注释说明
|
||||
|
||||
### 安全与最佳实践
|
||||
- 使用 `become: yes` 控制权限提升
|
||||
- 避免硬编码敏感信息
|
||||
- 使用 `no_log: true` 隐藏敏感输出
|
||||
- 合理使用 `backup: yes` 保护现有配置
|
||||
|
||||
## 示例代码风格
|
||||
```yaml
|
||||
---
|
||||
- name: 配置服务
|
||||
hosts: servers
|
||||
become: yes
|
||||
|
||||
vars:
|
||||
service_port: 8080
|
||||
enable_monitoring: true
|
||||
|
||||
tasks:
|
||||
- name: 部署服务配置
|
||||
ansible.builtin.template:
|
||||
src: config.j2
|
||||
dest: /etc/service/config.yml
|
||||
when: enable_monitoring
|
||||
```
|
||||
31
llmdoc/reference/git-conventions.md
Normal file
31
llmdoc/reference/git-conventions.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# Git 约定参考
|
||||
|
||||
## 分支策略
|
||||
|
||||
- **主分支:** `main`
|
||||
- **分支管理:** 直接在 `main` 分支上提交更改
|
||||
|
||||
## Commit Message 规范
|
||||
|
||||
### 消息风格
|
||||
- 使用简体中文
|
||||
- 简洁描述更改内容
|
||||
- 消息格式示例:
|
||||
- `添加执行参数`
|
||||
- `添加`
|
||||
|
||||
### Commit 模式
|
||||
- 提交频率:较低,主要捕捉重要功能和变更
|
||||
- 提交者:单一开发者(Wang Defa)
|
||||
|
||||
## 版本管理
|
||||
|
||||
- **当前版本管理方式:** 简单、直接
|
||||
- **特点:** 轻量级提交,无复杂的分支管理
|
||||
- **建议:** 考虑引入更结构化的版本控制流程
|
||||
|
||||
## 最佳实践建议
|
||||
|
||||
1. 保持 Commit Message 简洁明了
|
||||
2. 每次提交聚焦于单一功能或修复
|
||||
3. 考虑添加更详细的变更描述
|
||||
34
llmdoc/reference/jinja2-parameter-patterns.md
Normal file
34
llmdoc/reference/jinja2-parameter-patterns.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# Jinja2 参数构建模式参考
|
||||
|
||||
## 1. 条件参数生成基本模式
|
||||
|
||||
### 布尔开关模式
|
||||
```yaml
|
||||
{{ '--flag' if boolean_var else '' }}
|
||||
```
|
||||
|
||||
### 带值参数模式
|
||||
```yaml
|
||||
{{ '--param ' + value if condition else '' }}
|
||||
```
|
||||
|
||||
## 2. 复合条件示例
|
||||
|
||||
```yaml
|
||||
{{ '--cc-tls' if enable_cc and enable_cc_tls else '' }}
|
||||
```
|
||||
|
||||
## 3. 参数构建最佳实践
|
||||
|
||||
- 使用三元运算符 `if-else`
|
||||
- 避免使用复杂的嵌套条件
|
||||
- 保持参数生成逻辑简洁明了
|
||||
|
||||
## 4. 性能与可读性
|
||||
|
||||
- Jinja2 条件语法开销极小
|
||||
- 比传统编程逻辑更加声明式和直观
|
||||
|
||||
## 5. 源代码参考
|
||||
|
||||
- `xxxigcc_install.yaml:25-34`: 动态参数构建的实际实现
|
||||
53
llmdoc/reference/journald-parameters.md
Normal file
53
llmdoc/reference/journald-parameters.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# Journald 配置参数参考
|
||||
|
||||
## 核心摘要
|
||||
|
||||
本文档提供了 systemd-journald 日志配置的详细参数参考,旨在帮助开发者和系统管理员精确控制日志行为。
|
||||
|
||||
## 参数列表
|
||||
|
||||
### 空间管理参数
|
||||
|
||||
1. **SystemMaxUse**
|
||||
- **描述:** 日志总体使用空间上限
|
||||
- **默认值:** "500M"
|
||||
- **类型:** 存储大小(字节/K/M/G)
|
||||
- **作用:** 限制所有日志条目占用的总磁盘空间
|
||||
|
||||
2. **SystemMaxFileSize**
|
||||
- **描述:** 单个日志文件大小限制
|
||||
- **默认值:** "100M"
|
||||
- **类型:** 存储大小(字节/K/M/G)
|
||||
- **作用:** 控制单个日志文件的最大尺寸
|
||||
|
||||
### 保留和过期策略
|
||||
|
||||
3. **MaxRetentionSec**
|
||||
- **描述:** 日志保留时间
|
||||
- **默认值:** "7day"
|
||||
- **类型:** 时间间隔(秒/分钟/小时/天)
|
||||
- **作用:** 确定日志保留的最长时间
|
||||
|
||||
### 速率控制参数
|
||||
|
||||
4. **RateLimitIntervalSec**
|
||||
- **描述:** 日志速率限制时间间隔
|
||||
- **默认值:** "30s"
|
||||
- **类型:** 时间间隔
|
||||
- **作用:** 定义速率限制的时间窗口
|
||||
|
||||
5. **RateLimitBurst**
|
||||
- **描述:** 日志突发速率限制
|
||||
- **默认值:** "10000"
|
||||
- **类型:** 整数
|
||||
- **作用:** 在指定时间间隔内允许的最大日志条目数
|
||||
|
||||
## 源代码引用
|
||||
|
||||
- **主要配置文件:** `journald_configure.yml`
|
||||
- **架构文档:** `/llmdoc/architecture/journald-configuration-flow.md`
|
||||
|
||||
## 相关架构文档
|
||||
|
||||
- [Journald 配置流程架构](/llmdoc/architecture/journald-configuration-flow.md)
|
||||
- [Journald 配置指南](/llmdoc/guides/how-to-configure-journald.md)
|
||||
25
llmdoc/reference/security-checklist.md
Normal file
25
llmdoc/reference/security-checklist.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# 安全检查清单
|
||||
|
||||
## 1. 权限管理检查
|
||||
|
||||
### Sudo 和权限提升
|
||||
- [ ] 所有 Playbook 是否正确使用 `become: yes`
|
||||
- [ ] 权限提升是否遵循最小权限原则
|
||||
- [ ] 是否有不必要的全局 root 权限使用
|
||||
|
||||
## 2. 脚本下载安全
|
||||
- [ ] 所有脚本下载是否启用 `validate_certs: yes`
|
||||
- [ ] 下载脚本权限是否正确设置(`mode: '0755'`)
|
||||
- [ ] 下载源是否可信且使用 HTTPS
|
||||
|
||||
## 3. 日志安全配置
|
||||
- [ ] 日志总大小限制是否合理(默认 500M)
|
||||
- [ ] 单个日志文件大小限制(默认 100M)
|
||||
- [ ] 日志保留期限设置(默认 7 天)
|
||||
- [ ] 日志速率限制是否正确配置
|
||||
|
||||
## 4. 常规安全审计
|
||||
- [ ] 定期检查并更新安全配置
|
||||
- [ ] 审核所有自动化脚本
|
||||
- [ ] 检查证书和加密设置
|
||||
- [ ] 监控异常日志和访问行为
|
||||
31
llmdoc/reference/xxxigcc-parameters.md
Normal file
31
llmdoc/reference/xxxigcc-parameters.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# XXXigCC 部署参数参考
|
||||
|
||||
## 1. 核心摘要
|
||||
XXXigCC 的部署采用高度灵活的参数配置机制,支持多种功能开关和高级配置选项。
|
||||
|
||||
## 2. 参数分类
|
||||
|
||||
### 必填参数
|
||||
| 参数名称 | 描述 | 示例 |
|
||||
|---------|------|------|
|
||||
| `pool_url` | 资源池 URL | `http://pool.example.com` |
|
||||
| `cc_url` | 控制中心 URL | `https://control.center` |
|
||||
| `cc_token` | 控制中心访问令牌 | `secret-token-123` |
|
||||
|
||||
### 可选布尔参数
|
||||
| 参数名称 | 默认值 | 功能描述 |
|
||||
|---------|--------|----------|
|
||||
| `enable_cc` | true | 启用控制中心功能 |
|
||||
| `enable_tls` | true | 启用传输层安全 |
|
||||
| `enable_cc_tls` | true | 控制中心启用 TLS |
|
||||
| `enable_keepalive` | true | 维持长连接 |
|
||||
| `enable_1gb_pages` | true | 使用大页内存 |
|
||||
|
||||
## 3. 来源真相
|
||||
- 主要代码:`xxxigcc_install.yaml` - 定义参数和安装逻辑
|
||||
- 安装脚本:`https://gitea.bcde.io/wangdefa/xxxigcc/raw/branch/main/script/install.deb.sh`
|
||||
- 卸载脚本:`https://gitea.bcde.io/wangdefa/xxxigcc/raw/branch/main/script/uninstall.sh`
|
||||
|
||||
## 4. 外部文档
|
||||
- 功能规范文档:待补充
|
||||
- 性能配置指南:待补充
|
||||
Reference in New Issue
Block a user