전체 재생 목록에서 처리기를 한 번만 실행하고 싶습니다. 전체 재생 목록에 대해 한 번만 실행 가능 처리기
는 나는이 플레이 북 파일에 다음 문을 포함하여 시도했지만이 번 각 놀이를 위해, 여러 번 실행되는 핸들러 결과 : 여기- name: Configure common config
hosts: all
become: true
vars:
OE: "{{ ansible_hostname[5] }}"
roles:
- { role: common }
handlers:
- include: handlers/main.yml
- name: Configure metadata config
hosts: metadata
become: true
vars:
OE: "{{ ansible_hostname[5] }}"
roles:
- { role: metadata }
handlers:
- include: handlers/main.yml
메인 핸들러 /의 내용이다. YML :
- name: Configure automount - /opt/local/xxx in /etc/auto.direct
lineinfile:
dest: /etc/auto.direct
regexp: "^/opt/local/xxx"
line: "/opt/local/xxx -acdirmin=0,acdirmax=0,rdirplus,rw,hard,intr,bg,retry=2 nfs_server:/vol/xxx"
notify: restart autofs
,691 : 여기
- name: restart autofs
service:
name: autofs.service
state: restarted
핸들러에 통지하는 작업 중 하나의 예이다
전체 플레이 북에 대해 한 번만 핸드북을 실행하도록 플레이 북을 얻으려면 어떻게해야합니까?
당신의 플레이 북은 좀 거칠어 보입니다. 이 안내서의 일반적인 개념은 무엇이며 여기에 처리기를 포함시키는 이유는 무엇입니까? 핸들러는 태스크에 의해 통지되어야하므로 역할의 일부입니다. 문서에서 처리기 사용 방법을 확인하십시오. https://docs.ansible.com/ansible/playbooks_intro.html. 특정 작업을 한 번만 실행하는 또 다른 방법은 다음과 같습니다. https://docs.ansible.com/ansible/playbooks_delegation.html#run-once –
야생으로 무엇을 의미하는지 확실하지 않습니다. 게임 북은 일련의 연극이며이 예에서는 두 개의 연극이 있습니다. 여러 재생에 대해 단일 처리기를 사용하고 전체 재생 목록에 대해 한 번 실행하도록합니다. 나는 그것이 의미가 있기를 바랍니다. 작업을 한 번만 실행하고 처리기를 한 번만 실행하면됩니다. – user3155618
@techraf 처리기에 알리는 여러 작업이 있습니다. 나는 질문을 편집하고 과제 중 하나를 추가했다. – user3155618