Files
ansible-playbook/docs/QUICKSTART_nezha.md
Wang Defa 167fad20eb 添加 Nezha Agent 管理功能和完整文档系统
- 新增 Nezha Agent client_secret 更新 playbook(两种实现方案)
- 建立三层文档架构:docs/(用户文档)、examples/(配置示例)、llmdoc/(技术文档)
- 添加项目主 README.md 和配置示例文件
- 初始化 .gitignore 保护敏感信息
2025-12-16 10:52:38 +08:00

201 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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=你的新密钥"
```