При использовании старой версии ansible и нового sysytemd (239-43.el8) во время выполнения задач с сервисами можно получить ошибку Service is in unknown state.
Ansible для проверки статуса использует команду systemctl show. И если выполнить это на хосте с новой версией systemd то получим ошибку.
Например
systemctl --no-pager show firewalld
Решение
Для решения обновляем ansible. Если не очень хочется то вот кусок кода который нужно добавить в файл /usr/lib/python2.7/site-packages/ansible/modules/system/systemd.py.
sudo vim /usr/lib/python2.7/site-packages/ansible/modules/system/systemd.py
        # Workaround for https://github.com/ansible/ansible/issues/71528
        elif err and rc == 1 and 'Failed to parse bus message' in err:
            result['status'] = parse_systemctl_show(to_native(out).split('\n'))
            (rc, out, err) = module.run_command("{systemctl} list-units '{unit}*'".format(systemctl=systemctl, unit=unit))	


Комментарии