При использовании старой версии 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))
Комментарии