무언가가 변경되었다고보고하는 Ansible 작업의 중요성은 무엇입니까? 되는 작업이 있습니다. 서비스가

프로세스가 포트 8080에서 수신 대기 중인지 확인하고 종료 코드가 0이 아닌 경우에만 fail메시지와 함께 실행 되는 작업이 있습니다.

서비스가 실행 중이면 상태가 변경되었다고보고합니다. 나는 그것을 말하고 싶다 ok. changedAnsible에서 상태는 실제로 무엇을 의미합니까?



답변

대상의 무언가에 의존하는 것은 무언가를 에코하는 쉘 명령 일지라도 실행시 상태가 “변경된”상태가됩니다.

“변경된”상태를 억제하기 위해 작업에 다음 줄을 추가 할 수 있습니다.

changed_when: false

이것과 다른 관련 것들이이 유용한 문서 페이지에 나와 있습니다.


답변

Ansible 작업을해야 나무 등 . 예 : 작업이 아무것도 수정하지 않으면 ok대신을 반환해야합니다 changed. 모듈 및 작업 내장 대부분은 이미 있지만, 같은 작업 commandshell는 조금 ansible 도움말을해야합니다.

순전히 검사하고 아무것도 수정하지 않는 작업의 경우 다음을 추가해야합니다.

changed_when: False
always_run: yes

후자는 검사 모드 에서도 작업을 실행할 수 있습니다 .

완전성을 위해 이러한 작업은 일반적으로 실제 수정을 수행하는 다른 작업과 결합됩니다.

- command: check command that returns true when no change needed
  register: result
  changed_when: False
  always_run: yes
- command: modify command
  when: result.rc != 0


답변