- 修正 xxxigcc_update_pool_url.yaml 中的条件判断 - 将 log_dir_stat.isdir 修正为 log_dir_stat.stat.isdir - 新增 stat 模块属性访问最佳实践文档 - 更新故障排除指南中的常见错误处理部分
1.9 KiB
1.9 KiB
如何更新 XXXigCC 的 Pool URL
0. 版本兼容性
重要提示:
- 支持 Ansible 2.14 及以上版本
- 已移除
warn: false参数,确保兼容性 - 使用
ansible.builtin.shell模块替代传统command模块
1. 准备工作
在更新 XXXigCC 的 Pool URL 之前,请确保:
- 已安装 Ansible 2.14 或更高版本
- 已安装
jq工具 - 有权限修改
/etc/xxxigcc/config.json - 有权限重启
xxxigcc-daemon.service
2. 更新步骤
-
准备变量文件: 创建一个
xxxigcc_update_vars.yml文件,包含以下关键变量:new_pool_url: "https://new-pool.example.com" # 可选:验证旧 URL(如需) old_pool_url: "https://old-pool.example.com" -
执行 Playbook:
ansible-playbook xxxigcc_update_pool_url.yaml -e @xxxigcc_update_vars.yml
3. 操作说明
- Playbook 将自动备份原始配置文件
- 更新
pools[0].url字段 - 清理
/var/log/xxxigcc目录下的日志文件 - 重启
xxxigcc-daemon.service
4. 故障排除
- 如果更新失败,检查:
- 变量文件格式
- URL 地址正确性
- 系统权限
- Ansible 版本兼容性
常见错误处理
Stat 模块属性访问问题
- 错误:
'dict object' has no attribute 'isdir' - 原因:Ansible stat 模块返回嵌套字典结构
- 解决方案:始终使用
log_dir_stat.stat.isdir而非log_dir_stat.isdir
示例修复:
- name: 检查日志目录
ansible.builtin.stat:
path: "/var/log/xxxigcc"
register: log_dir_stat
# 正确的条件判断
- name: 处理日志目录
when: log_dir_stat.stat.exists and log_dir_stat.stat.isdir
block:
- name: 清理日志
# 清理操作
5. 安全注意事项
- 仅在可信环境中执行此 Playbook
- 谨慎使用
old_pool_url参数 - 确保 Ansible 版本满足最低要求
- 注意处理 stat 模块返回的嵌套字典属性