Ответ 1
Мой ответ о чтении файлов журнала приложений/контейнеров из разных ящиков, чем работает 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.