只有在厨师更新所有节点后,如何执行脚本?

我想制作一个配方,将软件更新可执行文件部署到所有服务器,然后将新版本信息发布到数据库。 只有在给定angular色的所有节点都部署了新的软件包版本之后,如何才能生成数据库请求的脚本

在部署可执行文件的配方中,我会考虑在部署可执行文件后将新的软件版本存储在节点属性中。 然后,在另一个配方中,对这些节点进行search,并确认所有结果仅包含新的软件版本,即:

if search(:node, 'roles:role_for_your_app_servers').reject do |n| n['software']['version'] != target_version end.empty? do_database_update end 

为此,您需要首先确保在添加此function之前,所有节点都包含软件版本属性。