【发布时间】:2018-01-03 15:27:06
【问题描述】:
假设我需要启用服务然后启动服务(例如一些 Web 服务器),我是否应该创建一个任务来启用该服务,然后再创建另一个任务来启动该服务?或者我应该创建一个任务来启用服务,在这个服务中,创建一个通知,触发一个处理程序来启动服务?
如果使用 notify-handler 策略,那么问题是如果服务成功启用但不知何故没有启动,然后当我再次运行 playbook 时。由于该服务已经启用,将不再启动。
我认为将它们放在不同的任务中可能会更好?一般来说,人们如何在 Ansible 中实现它们?
如果单独编写任务,这是我的代码:
tasks:
- name: enable airflow service
systemd:
name: airflow-worker.service
enabled: yes
- name: start airflow service
service:
name: airflow-worker
state: started
【问题讨论】:
-
为什么不把你的服务作为系统服务,然后你可以使用内置的服务模块来管理你的服务呢?
-
matiit:将服务作为系统服务是什么意思?我使用 systemd 启用该服务。
-
如果您需要同时启用您的服务,请同时使用。使用
state: started和enabled:yes。进一步检查documentation。 -
Kyslik:你的意思是分别创建两个任务,而不是使用一个任务通知处理程序?
标签: ansible