添加 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,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 模块化
- 减少重复代码
- 添加充分的注释说明

View 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`
## 最佳实践
- 定期审核和调整日志配置
- 监控日志磁盘使用情况
- 根据系统负载动态调整参数

View 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. 验证部署
- 检查安装/卸载输出日志
- 验证服务运行状态

View 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 权限使用范围
- [ ] 审核日志配置
- [ ] 定期更新和补丁

View 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` 才会禁用

View 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`
- 不要直接修改示例文件
- 为不同的环境创建不同的配置文件副本