ansible - 如何在 Ansible 中取消服务的屏蔽?

标签 ansible

我在 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 的建议使用 commandshell 模块。

关于ansible - 如何在 Ansible 中取消服务的屏蔽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61689402/

相关文章:

linux - ansible playbook/shell 命令的电子邮件结果?

python - 努力在Python脚本中传递ansible变量

ansible - 为多个 import_playbook 包含文件中的变量

python - 无法将 ansible yml 文件中的 dict 键值获取到我的 after.yml 文件中

ansible - Ansible 设置最小值的确切列表是多少?

azure - 如何根据 set_facts 将多个 ansible 条件合并为一个

dictionary - Ansible 检查字典是否存在

Nginx错误: (13: Permission denied) while connecting to upstream

Ansible set_fact 值 No 转换为 False

git - 如何使用 Ansible git 模块 pull 带有本地更改的分支?