在节点客户端运行程序

时间:2017-07-11 15:23:47

标签: publish-subscribe consul

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

我想创建一个服务来在每个客户端运行程序:

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

当在Consul中编写新的KV时,我想在服务器端执行一个应用程序来运行特定节点中名为“runner”的服务,换句话说我想在我的应用程序consul exec -service=runner中执行在节点客户端运行另一个应用程序(myApp --run)。这个有可能?这是consul exec的含义?

如果你不明白这个问题,我可以改写它。

1 个答案:

答案 0 :(得分:1)

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

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

其次,不保证执行。

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