我不知道我是否理解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
的含义?
如果你不明白这个问题,我可以改写它。
答案 0 :(得分:1)
通常它用于所有节点上的常见作业。例如,类似这样的内容:sudo apt-get update
。
但是,请记住,它将在群集中的所有节点上运行。所以,如果这个命令产生巨大的输出,那将是一团糟。
其次,不保证执行。
对于这样的事情,我建议使用Ansible,Chef等系统