처리기는 일반적으로 일반 작업과 다르지 않은 작업 목록으로, 전역 적으로 고유 한 이름으로 참조되고 알리미에 의해 알려집니다. 처리기에 아무 것도 알리지 않으면 실행되지 않습니다. 처리기에 알리는 작업 수에 관계없이 특정 작업에서 모든 작업이 완료된 후 한 번만 실행됩니다. 성실한 의사
1) 같은 일을하는 핸들러의 이름은 동일해야합니다.
restart nginx
항상 다시 시작, nginx에하지 handler1
와handler2
2) 핸들러는 전체 "플레이"의 끝에서 섹션으로 범위가 지정된 플레이에서 실행됩니다.
3) 다시 시작 해야하는 작업에 대해 register
및 when
기능을 사용합니다.이 var은 함께 수행해야합니다.
코드 소스
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
동일한 작업을 수행하는 많은 방법. 처리기는 웹 사이트, SSL 인증서 및 서비스를 다시 시작해야하는 기타 작업이있는 nginx 서버에 대한 여러 변경 사항과 같이 동일한 프로세스를 여러 번 다시 시작하지 않도록 설계되었습니다.