프로세스가 포트 8080에서 수신 대기 중인지 확인하고 종료 코드가 0이 아닌 경우에만 fail
메시지와 함께 실행 되는 작업이 있습니다.
서비스가 실행 중이면 상태가 변경되었다고보고합니다. 나는 그것을 말하고 싶다 ok
. changed
Ansible에서 상태는 실제로 무엇을 의미합니까?
답변
대상의 무언가에 의존하는 것은 무언가를 에코하는 쉘 명령 일지라도 실행시 상태가 “변경된”상태가됩니다.
“변경된”상태를 억제하기 위해 작업에 다음 줄을 추가 할 수 있습니다.
changed_when: false
이것과 다른 관련 것들이이 유용한 문서 페이지에 나와 있습니다.
답변
Ansible 작업을해야 나무 등 . 예 : 작업이 아무것도 수정하지 않으면 ok
대신을 반환해야합니다 changed
. 모듈 및 작업 내장 대부분은 이미 있지만, 같은 작업 command
과 shell
는 조금 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