stdout
진행 상황 요약을 표시하면서 스크립트를 파일로 캡처 하려고 합니다 .
./RUN host-names ANSIBLE.yml 2>&1 | tee out.txt
그것이 하는 일은 초기 라인을 표시하고 이를 에 전달하는 것입니다 out.txt
. 그러나 실제 호스트 검사에서는 표시를 중지하고 다음으로 전달합니다 out.txt
.
PLAY [all]
********************************************************************
GATHERING FACTS
********************************************************************
그 후에도 계속 PLAY
작동 GATHERING FACTS
하지만 다음 명령 없이 스크립트를 실행하는 경우에만 가능합니다 tee
.
ok: [host.com]
ok: [host.com]
ok: [host.com]
fatal: [host.com]
grep
나는 또한 파일의 일부 출력에만 관심이 있습니다 out.txt
.fatal
생략하고ok
주인.
답변1
이 페이지를 찾았습니다(https://coderwall.com/p/d5zqla/unbuffered-output-with-ansible-in-jenkins), 출력을 버퍼링 해제하도록 강제하는 방법을 보여줍니다.
스크립트를 다음과 같이 수정했습니다.
export PYTHONUNBUFFERED=1
ansible-playbook -i inventory site.yml
이제 스크립트가 실행될 때 안정적인 출력을 얻습니다. 이것이 도움이 됩니까?