Chef:在不同节点触发服务重启

Chef: Trigger service restart on different nodes

我有一个问题,我找不到解决方案...

想象一个1主3从的拓扑。

每次更改主节点上的配置文件时,我都需要重新启动所有节点上的服务。 (我知道这很蠢,但我没有写申请所以...)

有没有办法在其他 3 个节点上触发服务重启?

//为清楚起见编辑

我的意思是,从同一个 recipe/cookbook 触发服务重启,而不在其他节点上执行 Chef 运行...

谢谢!

如果您不想运行 chef-client 重新启动服务。然后,恕我直言,有两个选择,

  1. 远程ssh命令执行。 - 执行远程 ssh 并通过执行资源启动重启命令。

    ssh -i < key> < user>@< IP> "< Restart command>"
    
  2. Chef 推送作业 - 安装 chef 推送作业客户端并在其他节点上使用 POST API 直接在从节点上触发命令作为作业。您从正在 运行 掌握的食谱中调用推送作业休息 APIs。因此,每当 master 重启时,您都可以使用 notify 触发对 Push Server 的 rest 调用以启动作业(即重启命令)。

    请参考:https://docs.chef.io/push_jobs.html