-vvv 옵션이 ansible-playbook 명령에 제공 될 때 로그 메시지가 표시되지만 그렇지 않은 경우 사용자 지정 Ansible 모듈에 디버그 로깅을 추가하고 싶습니다. 나는 모듈의 결과가이 로깅의 영향을 받기를 원하지 않는다. 즉, 로그 메시지를 stdout 또는 stderr에 직접 쓰고 싶지 않습니다.커스텀 Ansible 모듈에서 디버그 로깅을위한 표준/선호 방법이 존재합니다.
0
A
답변
2
모듈은 일반적으로 원격으로 실행되므로 실제로 모듈을 직접 출력 할 수는 없습니다.
exit_json
호출에서 모듈의 추가 데이터를 반환 할 수 있습니다.
if module._verbosity >= 3:
module.exit_json(changed=True, debug="wooha!")
else:
module.exit_json(changed=True)
module._verbosity
은 (-v = 1 -vvv = 3) 상세 레벨에 대응하고, 2.1 Ansible 때문에 가능하다.
출처 : Ansible Devel-list 및 github
1
Ansible 모듈이 있기 때문에 디버깅하기 어려운 :
- 모듈은 일반적으로 원격으로 실행된다 (그래서 우리는 디버깅
pdb
을 사용할 수 없습니다)
이렇게하면 다음과 같은 방법으로 Ansible 모듈을 디버깅 할 수 있습니다.
- 모듈을 로컬에서 실행합니다. 이것은 호스트를 localhost로 설정하거나 An
local_action
Anatile 모듈을 사용하여 구현할 수 있습니다. - 디버깅하려는 변수를 특정 파일에 기록/로깅합니다. 파이썬 q 라이브러리를 사용하여이 작업을 수행 할 수 있습니다.