使用Ansible重新启动Apache Graceful

时间:2018-08-27 05:30:51

标签: regex ansible

进行apache正常重启的理想方法是什么?

   - name: Restart Apache gracefully 
      command: apachectl -k graceful

Ansible systemd模块也一样吗?如果没有,有什么区别?谢谢 !

- name: Restart apache service.
  systemd:
    name: apache2
    daemon_reload: yes
    state: restarted

2 个答案:

答案 0 :(得分:2)

使用Ansible可以做的是确保所有与Apache的建立连接都已关闭(在Ansible术语中为 draining )。

使用wait_for模块,其条件是等待特定主机和端口上的连接耗尽,并且状态设置为drained。见下文:

- name: wait until apache2 connections are drained.
  wait_for:
   host: 0.0.0.0
   port: 80
   state: drained

注意:您可以将其用于所有Linux网络服务,如果要按Ansible剧本中的特定顺序关闭服务,这将非常方便。

wait_for指令可用于确保Ansible在完成特定步骤之前不会运行您的剧本。

答案 1 :(得分:0)

servicesystemd模块中目前不支持优美状态,因为这是特定于某些服务的,状态限于startedstoppedrestarted reloadedrunning。 因此,现在您需要使用在问题中所写的command模块来执行正常重启,这是唯一合适的解决方案。

但是有issue to support custom status,也许有人会很快实现。