gpt4 book ai didi

Ansible 使用 systemd 而不是服务模块

转载 作者:行者123 更新时间:2023-12-02 05:04:33 25 4
gpt4 key购买 nike

我刚刚接触 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 参数。

如何解决这个问题?

最佳答案

您可以通过在剧本中添加另一个步骤来解决这个问题,如下所示:

- name: restart mysql
service: "name={{ mysql_daemon }} state=restarted"
register: mysql_service

- name: pause after mysql restart
pause: "seconds=5"
when: mysql_service.changed

关于Ansible 使用 systemd 而不是服务模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37701342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com