詹金斯管道:awx cli stdout

时间:2021-01-12 15:30:35

标签: ansible jenkins-pipeline ansible-tower

在我的 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 日志控制台中实时更新标准输出?

1 个答案:

答案 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 日志。