1

我是 ruby​​ 的新手,问题是如何在 Chef 中执行 ruby​​_block 来检查直到创建文件。?

我用我的另一个红宝石块开始我的代码,比如..

ruby_block "block_until_not_operational" do
  block do
    10.times do
      if IO.popen("netstat -lnt").entries.select { |entry|
          entry.split[3] =~ /:#{node[:jboss][:default_port]}$/
        }.size == 0
        break
      end
      Chef::Log.debug("service[jenkins] still listening (port #{node[:jboss][:default_port]})")
      sleep 1
    end
  end
  action :nothing
end
4

1 回答 1

1

也许以 Jenkins 食谱为例:

如果有一个由其他资源中的通知操作触发的“block_until_operational”红宝石块,例如:

  notifies :start, 'service[jenkins]', :immediately
  notifies :create, 'ruby_block[block_until_operational]', :immediately
于 2013-10-23T16:43:44.610 回答