运行chef-client命令遇警告,新手求助如何用test-recipe创建文件
解决Chef收敛0资源及配置文件警告问题
1. 修正Cookbook与Recipe的引用格式
你的命令中recipe[twst-cookbook-test-recipe]的写法有误,Chef里Cookbook和Recipe的分隔符是::而非-。假设你的Cookbook名为twst-cookbook,Recipe文件是recipes/test-recipe.rb,正确的命令应该是:
chef-client -zr "recipe[twst-cookbook::test-recipe]"
2. 确保Cookbook结构符合标准
Chef Cookbook必须遵循固定目录结构,否则无法被识别:
twst-cookbook/ ├── recipes/ │ └── test-recipe.rb # 你的Recipe代码文件 └── metadata.rb # Cookbook元数据文件,必填
metadata.rb的最简示例内容:
name 'twst-cookbook' version '0.1.0'
3. 在Recipe中添加创建文件的资源
打开twst-cookbook/recipes/test-recipe.rb,写入创建文件的代码:
# 创建/tmp/test-file.txt文件 file '/tmp/test-file.txt' do content '这是Chef生成的测试文件' mode '0644' # 设置文件权限 owner 'root' # 设置文件所有者 group 'root' # 设置文件所属组 end
4. 消除配置文件警告
警告WARN: No config file found...是因为Chef找不到配置文件,你可以通过以下方式解决:
- 方法一:在当前目录创建
client.rb配置文件,内容如下:
后续运行命令时会自动读取该配置,警告消失。local_mode true cookbook_path ['.'] # 指定Cookbook所在目录为当前目录 - 方法二:运行命令时手动指定配置文件路径(如果已有现成配置):
chef-client -zr "recipe[twst-cookbook::test-recipe]" -c /path/to/your/client.rb
5. 重新执行命令
完成上述步骤后,再次运行修正后的命令,Chef会执行Recipe中的资源逻辑,成功创建指定文件。
内容的提问来源于stack exchange,提问作者Pratiksha Hake Shedage
相关产品推荐
相关产品推荐

