Обработчики - это списки задач, которые на самом деле ничем не отличаются от обычных задач, на которые ссылается глобально уникальное имя и которые уведомляются уведомителями. Если ничто не уведомляет обработчик, он не будет работать. Независимо от того, сколько задач уведомляет обработчик, он запускается только один раз, после того как все задачи завершены в конкретной игре. ансайбл док
1) Обработчики, которые делают то же самое, должны называться одинаково.
restart nginx
ВСЕГДА перезагружает nginx, handler1
а неhandler2
2) Обработчики запускаются в КОНЦЕ всего «Воспроизведения», игра которого ограничена вашими секциями.
3) Я хотел бы использовать register
и when
функцию для выполнения задач , которые должны быть перезапущены, заметьте вар должен носить с собой .
Код источника
PLAY [localhost] ***************************************************************
TASK [debug] *******************************************************************
ok: [localhost] => {
"msg": "Play 1"
}
TASK [role1 : Always true in role1] ********************************************
changed: [localhost]
TASK [role1 : Always true in role1] ********************************************
changed: [localhost]
TASK [role1 : Always true in role1] ********************************************
changed: [localhost]
TASK [role1 : Always true in role1] ********************************************
changed: [localhost]
TASK [role1 : Always true in role1] ********************************************
changed: [localhost]
TASK [role2 : Run if change in task c of role 1] *******************************
changed: [localhost]
TASK [role2 : Always true in role2] ********************************************
changed: [localhost]
TASK [debug] *******************************************************************
ok: [localhost] => {
"msg": "This is a task in a play"
}
RUNNING HANDLER [role1 : handler] **********************************************
ok: [localhost] => {
"msg": "This is a handler in role1"
}
PLAY [localhost] ***************************************************************
TASK [debug] *******************************************************************
ok: [localhost] => {
"msg": "Play 2"
}
TASK [role1 : Always true in role1] ********************************************
changed: [localhost]
TASK [role1 : Always true in role1] ********************************************
changed: [localhost]
TASK [role1 : Always true in role1] ********************************************
changed: [localhost]
TASK [role1 : Always true in role1] ********************************************
changed: [localhost]
TASK [role1 : Always true in role1] ********************************************
changed: [localhost]
TASK [role2 : Run if change in task c of role 1] *******************************
changed: [localhost]
TASK [role2 : Always true in role2] ********************************************
changed: [localhost]
TASK [debug] *******************************************************************
ok: [localhost] => {
"msg": "This is a task in a play"
}
RUNNING HANDLER [role1 : handler] **********************************************
ok: [localhost] => {
"msg": "This is a handler in role1"
}
PLAY RECAP *********************************************************************
localhost : ok=20 changed=14 unreachable=0 failed=0
Много способов сделать ту же задачу. Обработчики были разработаны для предотвращения повторного запуска одного и того же процесса, такого как множественные изменения на сервере nginx с веб-сайтами, ssl-сертификатами и другие задачи, требующие перезапуска службы.