在我的 Jenkins 管道中,我启动了一个带有选项 --monitor 的 AWX 作业模板,主要目标是能够在 Jenkins 控制台中跟踪 AWX 中发生的情况。
sh ("awx --conf.insecure --conf.host ${ansibleUrl} --conf.username ${ANSIBLE_USERNAME} --conf.password ${ANSIBLE_PASSWORD} job_templates launch --extra_vars @ansible_extra_vars_file.json --monitor $ANSIBLE_JOB_TEMPLATE_ID ")
已经制作了一个类似的 post about running an ansible playbook via a shell script in jenkins pipeline。但是,提出的解决方案并没有解决我的 pb,因为我没有设置 returnStdout: true 反正。
只有在 Ansible 作业完成后,Jenkins 日志控制台才会显示日志。
当我直接从 Jenkins slave 启动“awx job_templates launch”命令时,日志实时显示在标准输出中。
如何在 Jenkins 日志控制台中实时更新标准输出?
答案 0 :(得分:0)
实际上,答案就在这篇关于Jenkins console output not in realtime
的帖子中awxkit 包是用 Python 编码的,我只需要设置 PYTHONUNBUFFERED=1
myfun2 <- function(data, ...) {
discard <- filter(data, ...)
dplyr::anti_join(data, discard, by = colnames(discard))
}
这让我能够在我的 Jenkins 控制台中实时获取 AWX 日志。