我在 Mac 上运行 ansible 2.6.2,针对基于 Debian 的 Linux 系统。
有一个名为 hostapd
的服务,当您从存储库安装时,该服务会被预先屏蔽。
我的 Ansible playbook 安装 hostapd、配置它,并且需要取消屏蔽、启动和启用它。
理论上,它应该很简单:
- name: HostAPD | Make sure the service is unmasked, started, and enabled
systemd:
name: hostapd
state: started
enabled: yes
masked: no
当我运行它时,我只得到:
FAILED! => {"changed": false, "msg": "Error loading unit file 'hostapd': org.freedesktop.systemd1.UnitMasked \"Unit hostapd.service is masked.\""}
我尝试将任务分开,然后运行:
- name: HostAPD | Make sure the service is unmasked
systemd:
name: hostapd
masked: no
但我仍然遇到同样的错误。 由于某种原因,它无法解密服务,因为服务被屏蔽了...我本以为这将是一个要求 - 而不是失败的原因。
我做错了什么吗?我也尝试添加 daemon_reload: yes
,但这没有帮助。
最佳答案
这是 Ansible 2.6 中 systemd 模块中的一个错误,并在 Ansible 2.7 中修复。如果可能,请将 ansible 升级到 2.7 或最新版本,然后重试。否则,可以按照 @larsks 的建议使用 command
或 shell
模块。
关于ansible - 如何在 Ansible 中取消服务的屏蔽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61689402/