diff --git a/llmdoc/guides/xxxigcc-pool-url-update.md b/llmdoc/guides/xxxigcc-pool-url-update.md index 40e46cb..9581e25 100644 --- a/llmdoc/guides/xxxigcc-pool-url-update.md +++ b/llmdoc/guides/xxxigcc-pool-url-update.md @@ -45,8 +45,32 @@ 3. 系统权限 4. Ansible 版本兼容性 +### 常见错误处理 + +#### Stat 模块属性访问问题 + +- **错误**:`'dict object' has no attribute 'isdir'` +- **原因**:Ansible stat 模块返回嵌套字典结构 +- **解决方案**:始终使用 `log_dir_stat.stat.isdir` 而非 `log_dir_stat.isdir` + +示例修复: +```yaml +- 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 版本满足最低要求 \ No newline at end of file +- 确保 Ansible 版本满足最低要求 +- 注意处理 stat 模块返回的嵌套字典属性 \ No newline at end of file diff --git a/llmdoc/index.md b/llmdoc/index.md index 9cf25f3..a293c38 100644 --- a/llmdoc/index.md +++ b/llmdoc/index.md @@ -19,9 +19,9 @@ ## 最近更新 -- 修复 `xxxigcc_update_pool_url.yaml` 中的版本兼容性问题 -- 新增 Ansible 版本兼容性参考文档 -- 更新 Pool URL 更新指南 +- 修复 `xxxigcc_update_pool_url.yaml` 中的 stat 模块属性访问问题 +- 新增 Ansible 模块属性访问的最佳实践说明 +- 更新 XXXigCC Pool URL 更新指南中的故障排除部分 ## 联系方式 diff --git a/llmdoc/reference/ansible-version-compatibility.md b/llmdoc/reference/ansible-version-compatibility.md index df07d97..5fb7f97 100644 --- a/llmdoc/reference/ansible-version-compatibility.md +++ b/llmdoc/reference/ansible-version-compatibility.md @@ -10,6 +10,18 @@ ## 关键变更详情 +### 模块属性访问 + +Ansible stat 模块返回的是嵌套字典结构,访问属性时需要注意: + +- **错误示例**:`log_dir_stat.isdir` +- **正确示例**:`log_dir_stat.stat.isdir` + +原因: +- stat 模块返回一个包含 `stat` 子字典的对象 +- 必须通过 `stat` 子字典访问文件/目录属性 +- 直接访问根对象属性会导致 `'dict object' has no attribute` 错误 + ### `warn` 参数的移除 - **版本**:Ansible 2.14 @@ -32,6 +44,7 @@ - 始终使用最新的 Ansible 版本 - 定期检查并更新 Playbook - 使用 `ansible_version` 进行版本兼容性检查 +- 谨慎访问模块返回的嵌套字典属性 ## 参考资源 diff --git a/xxxigcc_update_pool_url.yaml b/xxxigcc_update_pool_url.yaml index a02a48a..35079f7 100644 --- a/xxxigcc_update_pool_url.yaml +++ b/xxxigcc_update_pool_url.yaml @@ -106,7 +106,7 @@ - name: 显示日志清理结果 ansible.builtin.debug: msg: "日志目录 {{ log_dir }} 已清理" - when: log_dir_stat.stat.exists and log_dir_stat.isdir + when: log_dir_stat.stat.exists and log_dir_stat.stat.isdir - name: 重启 xxxigcc-daemon 服务 ansible.builtin.systemd: