Chef 配置(通常指 Chef Infra,包括 Chef Client、Chef Server、Policy/Role/Cookbook 等)出错时,排查一般遵循**“看日志 → 定位阶段 → 缩小范围 → 验证修改”**的思路。下面按常见场景给你一套排查方法。
在节点上运行:
chef-client -l debug
或查看已有日志:
cat /var/log/chef/client.log
重点关注:
ERROR / FATALRecipe Compile Error(编译阶段)Converge Error(执行阶段)# Chef Server
sudo journalctl -u chef-server
# 或
/var/log/opscode/
错误示例:
NoMethodErrorundefined methodCookbook not foundSyntaxError常见原因:
include_recipe 写错排查:
# 本地语法检查
foodcritic cookbooks/your_cookbook
cookstyle cookbooks/your_cookbook
错误示例:
Resource failedPermission deniedTimeout常见原因:
排查:
chef-client --why-run
(Dry run,不真正改系统)
Cookbook 'xxx' not found
检查:
metadata.rb 是否声明Berksfile / Policyfile 是否包含knife cookbook upload xxx
undefined method `[]' for nil
检查:
attributes/default.rbnode['xxx']['key'] 是否存在Error connecting to https://chef.example.com
检查:
client.pem 是否存在/etc/chef/client.rbPermission denied @ dir_s_mkdir
检查:
chef-client 的用户mode / owner 资源设置chef-client --why-run -l info
或只跑某个 recipe:
chef-client -o recipe[your_cookbook::debug]
你可以贴:
我可以直接帮你定位到具体行和原因。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。