2
我想了解如何以及何時運行before_symlink,特別是如果出現故障。以此塊爲例:廚師的deploy_revision/before_symlink何時運行?
deploy_revision "foo" do
action :deploy
deploy_to "/opt/foo"
...
symlink_before_migrate(app_symlinks.merge({
... }))
purge_before_symlink([])
create_dirs_before_symlink([])
symlinks({})
before_symlink do
current_release = release_path
bash "foo_buildout_install" do
user "foo"
cwd current_release
code <<-EOH
...
EOH
end
end
restart_command do
current_release = release_path
bash "foo_foreman_install_and_restart" do
restart foo || start foo
EOH
end
end
end
before_symlink塊在什麼條件下運行?例如,如果構建失敗,那麼廚師會重新調配 - 它會再次運行嗎?如果創建了符號鏈接,它會再次被調用嗎?
(我還在學習廚師,而我不這樣做Ruby開發,所以請不要以爲我瞭解deploy_revision是如何工作的,或軌道部署模型的東西)
嗯,這很容易閱讀:)如果存儲庫代碼與已部署的代碼相同,是否沒有檢查某處以避免重新部署? – 2012-08-22 08:26:11
看起來並不像它,copy_cached_repo方法會再次複製'cached-copy'目錄中的任何內容到發佈目錄,然後是上面的符號鏈接操作等。據推測,緩存副本的存在意味着不要再次從頭檢出回購,只是一個GIT拉或其他。 – Anentropic 2012-08-22 09:04:16