İşleyiciler, genel olarak benzersiz bir adla başvurulan ve bildiriciler tarafından bildirilen normal görevlerden gerçekten farklı olmayan görev listeleridir. Hiçbir şey bir işleyiciyi bilgilendirmezse, çalışmaz. Kaç işin bir işleyiciyi bilgilendirdiğine bakılmaksızın, belirli bir oyunda tüm görevler tamamlandıktan sonra yalnızca bir kez çalışır. ansible doc
1) Aynı şeyi yapan işleyiciler aynı şekilde adlandırılmalıdır.
restart nginx
DAİMA nginx'i yeniden başlatır, değil handler1
vehandler2
2) İşleyiciler bölümlerinizin kapsamındaki bir oyunun sonunda "Oynat" ın sonunda çalıştırılır.
3) Yeniden başlatılması gereken görevler için register
ve when
işlevlerini kullanırdım, bu varlığın yanınızda taşıması gerektiğini unutmayın.
Kod Kaynağı
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
Aynı görevi yapmanın birçok yolu. İşleyiciler, web sitelerinin, SSL sertifikalarının ve hizmetin yeniden başlatılmasını gerektiren diğer görevlerin bulunduğu bir nginx sunucusunda birden çok değişiklik yapılması gibi aynı işlemin birden çok kez yeniden başlatılmasını önlemek için tasarlanmıştır.