![Chef:如果 git deploy 已提取新代码,如何运行操作?](https://linux22.com/image/602765/Chef%EF%BC%9A%E5%A6%82%E6%9E%9C%20git%20deploy%20%E5%B7%B2%E6%8F%90%E5%8F%96%E6%96%B0%E4%BB%A3%E7%A0%81%EF%BC%8C%E5%A6%82%E4%BD%95%E8%BF%90%E8%A1%8C%E6%93%8D%E4%BD%9C%EF%BC%9F.png)
大多数情况下,部署到本地目录的 git repo 中没有任何新内容,但如果有任何更改,则应重新启动 node.js 应用程序以开始使用最新更改。如果没有提取新代码,则不应对其进行修改。
如何通过厨师实现这一目标?
答案1
sync
如果修订版本发生变化,git操作实际上会触发通知。因此,添加一个仅在通知时运行的执行块,您就大功告成了!
git "/home/code" do
...
action :sync
notifies :run, "execute[restart-node-app]", :immediately
end
execute "restart-node-app" do
command "..."
action :nothing
end