运行 节点客户端程序

Run program in node client side

不知道我是否理解consul exec的选项... 我有一个领事服务器和几个领事客户端:https://play.golang.org/p/s3N3r3lK9e(配置文件示例)

我想为每个客户端中的 运行 程序创建一个服务:

"service": {
    "name": "runner", "port": 7700,
    "check": {
        "script": "/usr/local/bin/myApp --run"
    }
}

当一个新的 KV 在 Consul 中写入时,我想在服务器端执行一个应用程序到 运行 在特定节点中调用 "runner" 的服务,换句话说我想在我的应用程序 consul exec -service=runner 到 运行 节点客户端中的另一个应用程序 (myApp --运行)。这个有可能?这就是consul exec?

的意思

如果你不明白问题,我可以重写。

通常它用于所有节点上的常见作业。例如,像这样:sudo apt-get update.

但是,请记住,它将在集群中的所有节点上 运行。所以,如果这个命令产生巨大的输出,那将是一团糟。

其次,无法保证执行。

对于这样的事情,我建议使用 Ansible、Chef 等系统