我试图了解 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 块在什么条件下运行?例如,如果构建失败,则重新配置 chef - 它会再次运行吗?如果创建了符号链接怎么办,它会再次被调用吗?
(我还在学习 Chef,而且我不做 ruby 开发,所以请不要假设我了解 deploy_revision 的工作原理或 rails 部署模型。)