Chef 服务器如何知道节点的角色是否已应用,其服务是否已启动并正在运行?



如果节点的角色定义为apache2,并且假设chef-client每隔X秒检查一次更改,那么chef-server如何知道角色已成功应用并且apache2 (httpd)定义的服务已启动/运行?

上面的用例是执行一些编排,其中分配角色,然后进行某种循环检查,以查看服务是否完成并运行,然后再进行下一阶段的分配。

考虑启用lastrun处理程序,代码将设置一些节点属性,这些属性可用于确定最后一次chef客户端运行的状态。

Chef是一种声明性语言。必须假设,如果recipe声明服务应该正在运行,并且客户端没有错误地完成,那么服务确实正在运行。

另一个选项是使用knife命令启动chef客户端

knife ssh "role:webserver" "sudo chef-client"

这将确保您的所有节点都正确聚合。

最新更新