Есть ли лучший способ сделать это?
write a custom module. Пользовательский модуль может даже быть инструментом, поэтому вы избавитесь от установки этой зависимости. Модули могут быть написаны на любом языке, но желательно использовать Python, потому что:
- Python является требованием анзибля все равно
- При использовании Python вы можете использовать API, предоставленного анзиблем
Если вы бы иметь собственный модуль для вашего инструмента ваша задача может выглядеть следующим образом:
- name: deployer
deployer: package_v2.rpm
Также есть способ K eep пытается довести до всех хостов?
Ansible может автоматически retry задач.
- name: deployer
command: rpmdeployer --install package_v2.rpm
register: result
until: result | success
retries: 42
delay: 1
Это работает, если ваш инструмент возвращает правильные коды выхода (0 при успехе и> 0 при сбое). Если нет, вы можете применить любое пользовательское условие, например. найдите stdout
для контента и т. д.
Я не знаю, как использовать инструмент для автоматической повторной попытки, когда проигрыватель действительно не прошел. Но это не должно быть слишком сложно создать небольшой скрипт-оболочку, чтобы проверить файл повтора и запустить playbook с --limit @foo.retry
, пока он не будет повторно создан.
Но я не уверен, что это имеет смысл. Если установка rpm с вашим инструментом не удалась, я предполагаю, что он будет также терпеть неудачу при любых попытках, если в игре нет неизвестных компонентов, таких как загрузка rpm в первую очередь. Таким образом, конечно, загрузка может завершиться неудачей, и повторная попытка может быть успешной.
Просьба показать журнал пробега. И добавьте -vvv в финале. В команде ansible launch. Объясните больше, почему хозяева потерпели неудачу? А также. Вы хотите получить выход из своей команды или повторить попытку и запустить ту же команду, если не удалось в первый раз. –
Он может изменяться от неустойчивости системы до оборванного dpm db.Меня не интересует, почему это не удалось (sys admins позаботится об этом). Я хочу повторить попытку, чтобы после устранения других проблем мне не пришлось вручную повторять неудачные хосты – kbang