Ruby Chef-执行vs bash资源

Ruby Chef-执行vs bash资源,ruby,chef-infra,recipe,Ruby,Chef Infra,Recipe,我使用了execute资源或bash资源 两者的效果相同: bash 'Execute my script' do user 'root' cwd '/mydir' code <<-EOH ./myscript.sh EOH end execute 'Execute my script' do user 'root' cwd '/mydir' command './myscript.sh' end bash'executem

我使用了
execute
资源或
bash
资源

两者的效果相同:

bash 'Execute my script' do 
  user 'root'
  cwd  '/mydir'
  code <<-EOH
    ./myscript.sh
  EOH
end

execute 'Execute my script' do 
  user    'root'
  cwd     '/mydir'
  command './myscript.sh'
end
bash'executemyscript'do
用户“根”
cwd'/mydir'

代码对于单个脚本,请使用
执行
bash
资源用于将脚本内容内联包含在配方代码中。

在bash&execute块中,我们需要编写代码来捕获错误,就像添加多个命令一样&厨师会获取最后一个命令的状态。 更清楚地说,当Bash/execute块只有一个命令时,chef捕捉到问题,如果下一个命令成功,那么它将采用最后一个命令状态

bash 'Execute my script' do 
  user 'root'
  cwd  '/mydir'
  code <<-EOH
    ./myscript.sh
    ls srini ##This will fail
    ls  ## this will be successful
  EOH
end

execute 'Execute my script' do 
  user    'root'
  cwd     '/mydir'
  command './myscript.sh'
  command 'ls srini' #will fail
  command 'ls' # will be successful
end
bash'executemyscript'do
用户“根”
cwd'/mydir'
代码