添加 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

200
docs/QUICKSTART_nezha.md Normal file
View File

@@ -0,0 +1,200 @@
# Nezha Agent Secret 更新 - 快速开始
## 🚀 5分钟快速上手
### 步骤 1: 准备 Inventory 文件
```bash
# 复制示例文件
cp inventory.example.ini inventory.ini
# 编辑 inventory.ini添加你的服务器信息
vim inventory.ini
```
最简单的 inventory.ini 示例:
```ini
[nezha_agents]
your-server.com ansible_host=1.2.3.4 ansible_user=root
```
### 步骤 2: 测试连接
```bash
# 测试 Ansible 连接
ansible nezha_agents -i inventory.ini -m ping
```
如果成功,你会看到:
```
your-server.com | SUCCESS => {
"changed": false,
"ping": "pong"
}
```
### 步骤 3: 执行更新
#### 方式A强制更新推荐用于首次使用
```bash
ansible-playbook nezha_update_secret.yml \
-i inventory.ini \
-e "client_secret=你的新密钥"
```
#### 方式B安全更新推荐用于生产环境
```bash
ansible-playbook nezha_update_secret.yml \
-i inventory.ini \
-e "client_secret=新密钥" \
-e "old_client_secret=旧密钥"
```
### 步骤 4: 验证结果
执行成功后,你会看到类似输出:
```
TASK [显示更新结果] ****************************************************
ok: [your-server.com] => {
"msg": "client_secret 已成功更新"
}
TASK [显示服务状态] ****************************************************
ok: [your-server.com] => {
"msg": "Nezha Agent 服务状态: active"
}
```
## 🎯 常见使用场景
### 场景 1: 单台服务器更新
```bash
ansible-playbook nezha_update_secret.yml \
-i inventory.ini \
--limit your-server.com \
-e "client_secret=NewSecret123"
```
### 场景 2: 先测试,后执行
```bash
# 1. 测试模式(不实际执行,只显示会做什么)
ansible-playbook nezha_update_secret.yml \
-i inventory.ini \
-e "client_secret=NewSecret123" \
--check --diff
# 2. 确认无误后,去掉 --check 实际执行
ansible-playbook nezha_update_secret.yml \
-i inventory.ini \
-e "client_secret=NewSecret123"
```
### 场景 3: 批量更新多台服务器
```bash
ansible-playbook nezha_update_secret.yml \
-i inventory.ini \
-e "client_secret=NewSecret123"
```
### 场景 4: 使用变量文件(保护敏感信息)
创建 `secret_vars.yml`:
```yaml
client_secret: "你的新密钥"
```
执行:
```bash
ansible-playbook nezha_update_secret.yml \
-i inventory.ini \
-e @secret_vars.yml
```
## ⚠️ 注意事项
1. **备份**: 每次执行都会自动备份配置文件
2. **重启**: 更新后会自动重启 nezha-agent 服务(服务会短暂中断几秒)
3. **权限**: 确保你有 root 或 sudo 权限
4. **验证**: 使用 `-e "old_client_secret=旧值"` 可以避免误操作
## 🔧 故障排查
### 问题:连接失败
```bash
# 检查 SSH 连接
ssh root@your-server.com
# 测试 Ansible 连接
ansible nezha_agents -i inventory.ini -m ping -vvv
```
### 问题:权限不足
```bash
# 如果不是 root 用户,确保在 inventory.ini 中添加
ansible_become=yes
# 或在命令中添加
ansible-playbook nezha_update_secret.yml -i inventory.ini -b -K
# -b: 使用 become (sudo)
# -K: 询问 sudo 密码
```
### 问题:配置文件路径不同
```bash
# 指定自定义路径
ansible-playbook nezha_update_secret.yml \
-i inventory.ini \
-e "client_secret=NewSecret" \
-e "config_file=/custom/path/config.yml"
```
## 📚 更多信息
- 详细文档: [nezha_update_secret_README.md](nezha_update_secret_README.md)
- 查看其他 playbook 示例: `ls *.yml *.yaml`
## 💡 专业提示
1. **使用 Ansible Vault 保护密钥**:
```bash
ansible-vault encrypt_string 'YourSecret' --name 'client_secret'
```
2. **保存执行日志**:
```bash
ansible-playbook nezha_update_secret.yml \
-i inventory.ini \
-e "client_secret=NewSecret" | tee update.log
```
3. **并行执行(多台服务器)**:
```bash
ansible-playbook nezha_update_secret.yml \
-i inventory.ini \
-e "client_secret=NewSecret" \
-f 10 # 同时处理10台服务器
```
## ✅ 检查清单
- [ ] 已准备 inventory.ini 文件
- [ ] 已测试 SSH/Ansible 连接 (`ansible -m ping`)
- [ ] 已准备新的 client_secret 值
- [ ] 在生产环境前已在测试环境验证
- [ ] 已使用 `--check --diff` 预览变更
- [ ] 已准备回滚方案(保留旧密钥值)
准备就绪?执行以下命令开始:
```bash
ansible-playbook nezha_update_secret.yml \
-i inventory.ini \
-e "client_secret=你的新密钥"
```