Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Chef中ruby_块资源的奇怪行为_Ruby_Chef Infra_Chef Recipe - Fatal编程技术网

Chef中ruby_块资源的奇怪行为

Chef中ruby_块资源的奇怪行为,ruby,chef-infra,chef-recipe,Ruby,Chef Infra,Chef Recipe,我在配方末尾有两个ruby块: 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 - u

我在配方末尾有两个ruby块:

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到box并运行chef客户机返回一个空的运行列表

有人能解释这种行为吗?我怎样才能修好它

执行官不是你想的那样。这是一个Ruby核心方法,它调用实际的exec系统调用,用新的东西替换当前进程。你想要的是我们的外壳!helper,它运行一个子命令并返回带有结果的and对象