Пару лет go Я был в проекте, и у нас было Ansible плейбуков, работающих с вольными заданиями Дженкинса, с использованием PYTHONUNBUFFERED=1
в качестве переменной среды, чтобы мы могли видеть результат в реальном времени, он работал отлично, это было действительно полезно. Затем однажды это перестало работать, мы пытались это исправить, но никогда не тратили достаточно времени на то, чтобы выяснить, «что изменилось» и имели другие приоритеты.
Сейчас я работаю над другим проектом с той же техникой, только различия в том, что у нас есть более новые Python, Jenkins и Ansible сейчас. Я просто попытался установить PYTHONUNBUFFERED=1
снова, но не повезло, долгое выполнение задачи Ansible, использующей модуль оболочки, буферизует весь вывод и отображает его только после того, как команда вернулась.
Я также попытался PYTHONBUFFERED=0
, и я попытался поставить префикс запуска книги воспроизведения, например, PYTHONUNBUFFERED=1 ansible-playbook ...
, а также использовать параметр конвейера environment
, чтобы установить его, и проверить его с помощью printenv
, но все равно не повезло.
Ищу предложения о том, что попробовать дальше.
Как заставить Jenkins 2.233, Python 2.7.16 и Ansible 2.8.1 не буферизовать вывод для Ansible задач оболочки?
ps Для справки, другие инженеры используйте эту технику тоже: например 1. https://coderwall.com/p/d5zqla/unbuffered-output-with-ansible-in-jenkins 2. https://blog.deimos.fr/2016/01/07/ansible-color-and-buffer-fix-on-jenkins/