Я использую Jenkins для CI - и хочу, чтобы можно было открыть журналы, поэтому нам не нужно подключаться к ящику CI, чтобы узнать, что происходит.
Есть ли плагин, который будет делать это? Или мне просто нужно написать script?
Я использую Jenkins для CI - и хочу, чтобы можно было открыть журналы, поэтому нам не нужно подключаться к ящику CI, чтобы узнать, что происходит.
Есть ли плагин, который будет делать это? Или мне просто нужно написать script?
Мой ответ о чтении файлов журнала приложений/контейнеров из разных ящиков, чем работает Jenkins. Например, если вы используете Jenkins для создания своих войн и затем развертываете их в нескольких средах, и вы хотите прочитать файлы журналов с вашего сервера Jenkins CI без необходимости вручную ssh/telnet других полей.
Вы можете создать проект/работу Jenkins, который сделает это за вас, после создания проекта Jenkins вы найдете параметр "Настройка" и внутри него есть опция в разделе "Сборка", где вы можете написать оболочку script:
Ваш script может быть примерно таким:
#!/bin/sh
USER=<your ssh user>
HOST=<your remote host>
LOG_DIR=<your log file location>
FILE=<your log file>
cmd="ssh [email protected]$HOST cat $LOG_DIR/$FILE"
echo $cmd
$cmd
Или что-то более сложное, например, передать параметры перед созданием Jenkins Job, чтобы ваши пользователи могли выбирать, какую среду и файл журнала они хотят видеть, есть опция "Эта сборка параметризована", которую вы можете выбрать и добавить параметры:
С этой конфигурацией пользователь увидит что-то подобное при попытке построить проект:
Оболочка script может использовать следующие параметры:
#!/bin/sh
USER=<your ssh user>
LOG_DIR_DEV=<log files location in dev>
LOG_DIR_QA=<log files location in qa>
if [ $ENVIRONMENT = "dev" ]; then
HOST=<your remote host for dev>
LOG_DIR=$LOG_DIR_DEV
fi
if [ $ENVIRONMENT = "QA" ]; then
HOST=<your remote host for qa>
LOG_DIR=$LOG_DIR_QA
fi
echo ENVIRONMENT=$ENVIRONMENT
cmd="ssh [email protected]$HOST cat $LOG_DIR/$FILE"
echo $cmd
$cmd
После создания задания они могут видеть вывод из журналов в Jenkins Job Console, например:
Если ваши файлы журнала слишком длинны, возможно, вы можете использовать "хвост" вместо "cat" в script.
Если вы имеете в виду общий вывод сборки Jenkins, это доступно через веб-интерфейс для каждой сборки под ссылкой "Выход консоли".
Если вы имеете в виду конкретный файл журнала, сгенерированный в рабочей области во время сборки, вы можете выбрать опцию "Архивировать артефакты" в разделе "Послестрочные шаги" вашей конфигурации задания.
Здесь вы можете указать шаблон файла, например. **/*.log
.
Любые файлы в рабочей области, соответствующие этому шаблону, будут архивироваться в конце каждой сборки и будут отображаться на веб-странице сборки.
Обратите внимание, что сборка завершится неудачно, если никакие файлы не соответствуют этому шаблону.
Вы можете создавать журналы во время сборки и прикреплять их как артефакт, однако ядро jenkins не позволяет вам сохранять консольный журнал в рабочей области. Если вы хотите сохранить консольный журнал, вам нужно будет установить плагин ConsoleLogToWorkspace. Этот плагин даст вам возможность сохранить весь журнал консоли jenkins.