ansible
#ansible
Вопрос:
Эта команда терпит неудачу каждый раз в Ansible, как я могу понять, почему это происходит и в чем может быть причина?
---
- name: "Restart service httpd via service module"
service:
name: httpd
state: restarted
register: restart_status
until: restart_status.rc == 0
retries: 2
delay: 10
when: infrastructure_type == 'cloud'
changed_when: restart_status.changed
ignore_errors: yes
Ошибка, которую я получаю, это:
error while evaluating conditional (restart_status.rc == 0): 'dict object' has no attribute 'rc'"}
Ответ №1:
Это связано .rc
с тем, что он специфичен для command:
shell:
модулей и; service:
модуль не содержит документированных выходных переменных, что означает, что ansible считает, что он может только добиться успеха или потерпеть неудачу, но в остальном ему больше нечего вам предложить
Очень вероятно, что выражение, которое вам нужно until: restart_status is succeeded
, использует succeeded
тест
Комментарии:
1. «Is succeded» будет означать, что ему удалось перезапустить службу без ошибок, верно?
2. На самом деле это зависит от самого модуля, но можно только предположить, что это то, для чего
state: restarted
он предназначен, да. Если вы обнаружите, что это не так, не стесняйтесь открывать проблему