首页 > 解决方案 > 如何将批处理命令输出分配给 Chef 配方属性

问题描述

我有一个 windows 命令来检查最近更新的目录。

for /f "delims=" %a in (' dir C:\Users\Username\cookbooks /ad /od /b ') do set "Last=%a";
echo %Last%;

我想将上述命令的输出分配给厨师食谱属性/食谱属性。

我确实尝试在批处理资源中直接执行上述命令并分配输出但失败了。有没有办法在厨师食谱属性中这样做?

标签: rubychef-infracookbook

解决方案


您可以将 a 命令作为说明书执行的一部分运行,并使用将值分配给节点属性shell_out

例如,它看起来像

ruby_block 'foo' do
  block do
    cmd = "your command here"
    shell = Mixlib::ShellOut.new(cmd).run_command
    stdout = shell.stdout
    node.default['my_key'] = stdout
  end
end

推荐阅读