Penangan adalah daftar tugas, tidak benar-benar berbeda dari tugas biasa, yang dirujuk oleh nama unik secara global, dan diberitahukan oleh pemberi notifikasi. Jika tidak ada yang memberi tahu penangan, itu tidak akan berjalan. Terlepas dari berapa banyak tugas yang memberi tahu penangan, itu akan berjalan hanya sekali, setelah semua tugas selesai dalam permainan tertentu. dok yang memungkinkan
1) Penangan yang melakukan hal yang sama harus dinamai sama.
restart nginx
SELALU me-restart nginx, bukan handler1
danhandler2
2) Penangan dijalankan pada AKHIR dari seluruh "Mainkan" permainan yang dicakup ke bagian Anda.
3) Saya akan menggunakan register
dan when
fungsi untuk tugas-tugas yang harus dimulai kembali, perhatikan var ini harus dibawa bersama Anda.
Sumber Kode
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
Banyak cara untuk melakukan tugas yang sama. Handler dirancang untuk mencegah memulai kembali proses yang sama beberapa kali, seperti beberapa perubahan pada server nginx yang memiliki situs web, sertifikat ssl, dan tugas-tugas lain yang memerlukan restart layanan.