1

使用 Chef 将当前部署的提交哈希写入 version.txt 文件的最佳方法是什么,类似于 Etsy 的做法?这就是我想出的。

execute "update_version" do
   command git log -1 --format="%H" > public/version.txt
   creates "#{app_config['deploy_dir']}/current/public/version.txt"
   owner app_user
   group app_group
   action:run
end
4

1 回答 1

1
   owner app_user
   group app_group

可能不适用于执行资源 http://wiki.opscode.com/display/chef/Resources#Resources-Execute

我可能会做类似的事情

bash "update_revision" do
   code "git log -1 --format="%H" > public/version.txt"
   creates "#{app_config['deploy_dir']}/current/public/version.txt"
end

file "public/version.txt" do
  owner app_user
  group app_group
  mode  0644
end

或者,您可以创建一个包含类似内容的模板

<%= shell_out!('git log -1 --format="%H"') %>

并使用类似的模板资源

template( "public/version.txt") do
      owner app_user
      group app_group
      mode  0644
end
于 2012-11-12T11:04:27.677 回答