2

私のdeploy_to_tomcatレシピの最後にあるこのコードを考慮してください:

  unless Chef::Config[:solo]
    chat_message "Deployed #{artifact_name} `#{Time.new.strftime("%Y-%m-%d %H:%M")}`"
  end

チャットにメッセージを投稿します: Deployed my-web-app 2016-11-03 12:31

ただし、からのタイムスタンプTime.newが少しずれていることに気付きました。数分後にリソースがカバーされて実行されたときではなく、レシピがコンパイルされたときのタイムスタンプのようです。

だから私はこれを試しましたが、うまくいきませんでした(undefinedメッセージがチャットに投稿されたときはまだtimeNowでした)

  timeNow = "undefined"
  ruby_block "set-time-now" do
    block do
      timeNow = Time.new.strftime("%Y-%m-%d %H:%M:%S")
    end
  end

  unless Chef::Config[:solo]
    chat_message "Deployed #{artifact_name} `#{timeNow}`"
  end

(レシピの開始時ではなく)実際の時間をタイムスタンプに反映させる簡単な方法はありますか?

4

2 に答える 2

1

何を解決しようとしているのかわかりませんが、ノードを使用してタイムスタンプを保存できます。

node.normal[:cookbook_name][:deployment_time] = "undefined"
ruby_block "set-time-now" do
  block do
    node.normal[:cookbook_name][:deployment_time] = Time.new.strftime("%Y-%m-%d %H:%M:%S")
  end
end

unless Chef::Config[:solo]
  chat_message "Deployed #{artifact_name} #{node[:cookbook_name][:deployment_time]}"
end
于 2016-11-04T07:21:51.243 に答える