这是一个使用的例子 failed_when: 。虽然它确实每次都运行,但是如果没有安装包,它会忽略失败:
failed_when:
- name: Stop and disable chrony service service: name: chronyd enabled: no state: stopped register: chronyd_service_result failed_when: "chronyd_service_result|failed and 'Could not find the requested service' not in chronyd_service_result.msg"
确保它可以处理没有的主机的最佳方法是什么? firewalld 安装?
firewalld
获取有关哪些系统的信息 firewalld 从任何类型的CMDB安装(如Ansible vars文件,因为您已经使用Ansible),并在这些系统上运行任务。
同样,不要在没有的系统上运行任务 firewalld 根据从CMDB中提取的配置安装。
实际实施各不相同。其中:为任务使用条件指定适当的主机组,使用条件在库存中。
在你的Ansible游戏中。在尝试停止/启动软件包之前,您可以先检查软件包是否已安装。
类似的东西: https://stackoverflow.com/a/46975808/3768721