【发布时间】:2026-01-14 17:25:01
【问题描述】:
我在食谱末尾有两个红宝石块:
ruby_block 'set permissions for app dir' do
block do
require 'fileutils'
FileUtils.chown_R 'user01', 'user01', '/mnt/app/'
end
action :run
end
ruby_block 'configure node app session' do
block do
cmd = "sudo su - user01 -c \"/mnt/app/http-app-/bin/app create /mnt/app/http-app/#{node['hostname']}\" && sudo su -c 'systemctl enable app' && sudo su -c 'systemctl start app'"
exec(cmd)
end
action :run
not_if "stat -c %U /mnt/app/#{node['hostname']} |grep app"
end
发生了一些奇怪的事情。一,我不能在最后一个块之后添加任何代码......如果添加它就不会运行。第二,当食谱运行时,如果运行失败或成功,食谱永远不会结束。第二次引导系统将证明成功完成......但是 ssh'ing 到盒子并运行 chef-client 会返回一个空的运行列表。
谁能解释这种行为?我该如何解决?
【问题讨论】:
标签: ruby chef-infra chef-recipe