Amazon web services 已跳过厨师长资源,即使在命令退出2时不是_

Amazon web services 已跳过厨师长资源,即使在命令退出2时不是_,amazon-web-services,chef-infra,Amazon Web Services,Chef Infra,该资源有一个not_if保护,我已经验证了该命令的退出代码是否为非零。然而,chef运行的输出显示由于not_if,资源被跳过 资源看起来像 device_id = "/dev/xvdf" execute 'yes | mkfs -t ext4 #{device_id}' do not_if 'blkid -o value -s TYPE #{device_id} && blkid -o value -s TYPE #{device_id} | grep ext4'

该资源有一个not_if保护,我已经验证了该命令的退出代码是否为非零。然而,chef运行的输出显示由于not_if,资源被跳过

资源看起来像

device_id = "/dev/xvdf"
execute 'yes | mkfs -t ext4 #{device_id}' do
    not_if 'blkid -o value -s TYPE #{device_id} && blkid -o value -s TYPE #{device_id} | grep ext4'
    timeout 1200
end

唉。Ruby不在单引号字符串中插值。将它们更改为双引号并修复了该问题。

最好的猜测是,该命令的输出在chef运行该命令的上下文中不相同。您可以接受此答案以“关闭”该问题吗?您也可以尝试使用
%Q[]
格式。括号内的所有内容都被视为双引号。