【发布时间】:2016-06-29 06:59:05
【问题描述】:
我正在编写一个类似于以下内容的 ansible 任务,
- name: Start daemon
shell: nohup myexeprogram arg1 arg2 &
(参考:https://stackoverflow.com/a/29818158/198660)
上面的任务是幂等的吗?即重复运行它最终会在系统上创建多个myexeprogram 实例还是只会创建一个?
如果前者(即为每个任务运行创建一个新实例),是否可以使用该任务编写一个具有幂等性的剧本?也许在开始新实例之前对任何现有实例运行某种搜索和终止命令?示例(ansible 任务)将不胜感激。
背景:我正在尝试在 centos7 系统上使用 ansible 设置 prometheus 服务器。
【问题讨论】:
-
为 prometheus 服务编写一个单元文件,并将服务模块与 Ansible 一起使用会更好。
-
@knowhy ansible 的服务模块主要是围绕 prometheus 支持的 systemv 构建的,但是 centos7 已经从它转移到 systemd,所以使用服务模块对我来说不是一个选项。
-
我还没有查看代码。我从来没有遇到过服务模块和 systemd 的问题。我只需要一次
daemon-reload的命令模块来激活单元文件。该模块支持 Systemd。
标签: ansible nohup idempotent