こんにちは私はシェフとルビーが初めてです。 私はシェフでレシピを作成しようとしています サーバー上でcronジョブを作成するには ルビコードの中に入る変数の値に基づいて私はシェフが遅延評価変数法とルビーのコードを持っていることを知っているルビーコードからの変数値に基づいてシェフでcrontabジョブを作成するには
Gem.clear_paths
node.default["value"] = "nil"
require 'net/http'
ruby_block "do-http-request-with-cutom-header" do
block do
Net::HTTP.get('example.com', '/index.html') # => String
uri = URI('http://example.com/index.html')
params = { :limit => 10, :page => 3 }
uri.query = URI.encode_www_form(params)
res = Net::HTTP.get_response(uri)
puts res.body if res.is_a?(Net::HTTPSuccess)
value= res.code
node["value"] = value
end
end
if node["value"] == "nil" then
cron "cassandra repair job" do
action :delete
end
else
cron "cassandra repair job" do
hour "0"
minute "55"
weekday node["value"]
mailto "[email protected]"
user "root"
command "/opt/cassandra/bin/nodetool repair -par -inc -pr"
end
end
は収束段階で実行されているが、私は私のコードを変更する方法を把握することはできません。
コードで遅延評価を使用するにはどうすればよいですか?
https://github.com/chef-cookbooks/cron –
@RajarshiDas Qはcronリソースに関するものではなく、遅延評価に関するものです。投稿を編集するときは、全体を修正するようにしてください。部分:) – Tensibai
[関連しない場合は重複](http://stackoverflow.com/questions/30424244/using-a-ruby-block-to-assign-variables-in-chef-recipe?rq=1)。 – Tensibai