我刚刚用Ansible 2.2和Debops弄湿了,我遇到了以下问题.我有一个主机test-host,我部署了一个MySQL服务器(使用geerlingguy.mysql).
该角色使用以下处理程序重新启动服务:
---
- name: restart mysql
service: "name={{ mysql_daemon }} state=restarted sleep=5"
Run Code Online (Sandbox Code Playgroud)
我认为,它使用Ansibles 服务模块来重启服务器.但是,失败了:
unsupported parameter for module: sleep
Run Code Online (Sandbox Code Playgroud)
所以只是为了排除那个自定义角色的任何怪异,我试图像这样直接执行模块:
ansible test-host -b -m service -a 'name=mysql sleep=5 state=restarted'
Run Code Online (Sandbox Code Playgroud)
结果相同.
使用更详细的输出显示运行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
Run Code Online (Sandbox Code Playgroud)
因此,似乎使用该systemd模块而不是service(查看模块显示它确实是别名service).并且,瞧,systemd不支持sleep参数.
如何解决这个问题?
您可以通过在剧本中添加另一个步骤来解决这个问题,如下所示:
- name: restart mysql
service: "name={{ mysql_daemon }} state=restarted"
register: mysql_service
- name: pause after mysql restart
pause: "seconds=5"
when: mysql_service.changed
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3900 次 |
| 最近记录: |