Ansible使用systemd而不是服务模块

时间:2016-06-08 11:33:23

标签: ansible devops

我刚刚用Ansible 2.2和Debops弄湿了脚,我遇到了以下问题。我有一个主机test-host,我部署了一个MySQL服务器(使用geerlingguy.mysql)。

该角色使用以下处理程序重新启动服务:

---
- name: restart mysql
  service: "name={{ mysql_daemon }} state=restarted sleep=5"
我认为,

使用Ansibles service module来重启服务器。但是,这失败了:

unsupported parameter for module: sleep

因此,为了排除该自定义角色的任何奇怪现象,我试图像这样直接执行模块:

ansible test-host -b -m service -a 'name=mysql sleep=5 state=restarted'

具有相同的结果。

使用更详细的输出显示运行Ansible(以及其他内容):

Running systemd
Using module file /usr/local/lib/python2.7/site-packages/ansible-2.2.0-py2.7.egg/ansible/modules/core/system/systemd.py

所以似乎使用了systemd模块而不是service(查看模块显示它确实是aliased to service)。而且,瞧,systemd不支持sleep参数。

如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

您可以通过在Playbook中添加另一个步骤来解决此问题:

url=https%3A%2F%2Fapi.example.com&method=POST&headers=%7BContent-Type%3Aapplication%2Fjson%7D&body%5Bfirstname%5D=John&body%5Blastname%5D=Wick