핸들러: 변경 시 작업 실행

핸들러: 변경 시 작업 실행

역할에 "사후 작업"이 있을 수 있나요? 즉, 연극이 끝날 때 실행되는 역할에 정의된 작업인가요?

예를 들어, 나에게는 common대부분의 다른 역할이 의존하는 역할이 있습니다. 이 common역할은 반복을 피하기 위해 yum 구성 조정 등과 같은 몇 가지 기본 사항을 제공합니다.

나는 그것을 알아 차렸다플레이북에는post_tasks. 역할 자체에서 사후 작업을 정의하는 것이 가능한지 궁금합니다.


업데이트: 인용하면앤서블 문서:

핸들러: 변경 시 작업 실행

...

이러한 '알림' 작업은 플레이북의 각 작업 블록이 끝날 때 트리거되며 여러 다른 작업에서 알림을 받더라도 한 번만 트리거됩니다.

...

역할은 나중에 설명됩니다. 핸들러는 'pre_tasks', 'roles', 'tasks' 및 'post_tasks' 섹션 사이에서 자동으로 처리된다는 점을 지적하는 것이 좋습니다.

...

분명히 문서의 이 부분은 오해의 소지가 있거나 완전히 거짓말을 하고 있습니다(=오류가 있습니다). 핸들러가 해고된 것 같습니다.매 경기가 끝날 때마다, tasks와 사이에 post_tasks다음과 같은 간단한 테스트가 표시됩니다.

- name:         Handlers test
  hosts:        all
  gather_facts: no
  roles:
    - some-role
    # some-role depends on common
  tasks:
    - name:  This a task
      shell: /bin/true
  post_tasks:
    - name:  This is a post task
      shell: /bin/true

그리고 일반적인 역할은 다음과 같습니다.

# tasks/main.yml

- name:   Registering handler
  shell:  /bin/true
  notify: this is a handler


#handlers/main.yml

- name:   this is a handler
  shell:  /bin/true

(아무도 답변을 제공하지 않았기 때문에 받아들일 수는 없지만 댓글의 팁으로 내 질문에 대답하는 것이 옳다고 생각하지 않았습니다...)

답변1

이 동작은 Ansible 1.9.x의 버그로 인해 발생하며 현재 여기에서 추적됩니다.https://github.com/ansible/ansible/issues/12575

관련 정보