在ansible幂等中使用nohup和shell(或命令)模块?

时间:2016-06-29 06:59:06

标签: ansible nohup idempotent

我正在写一个类似于以下的ansible任务,

- name: Start daemon
  shell: nohup myexeprogram arg1 arg2 &

(参考:https://stackoverflow.com/a/29818158/198660

上述任务是幂等的吗?即将重复运行它最终会在系统上创建多个myexeprogram实例,或者只会创建一个?

如果是前者(即为每个任务运行创建一个新实例),是否可以使用此任务编写一个游戏来进行幂等?也许是为了进行某种搜索&在开始新实例之前,为任何现有实例执行kill命令?将赞赏示例(安全任务)。

背景:我正在尝试在centos7系统上使用ansible设置prometheus服务器。

1 个答案:

答案 0 :(得分:1)

这项任务不会是幂等的。它会在每次运行时产生一个新实例。

您可以通过使用其他任务来检查现有的正在运行的流程并使用'何时使用'以此任务为条件,以避免在进程已在运行时运行。

那说守护程序并使用'服务'模块是比使用命令和nohup更好的模式。