我有以下任务打印出某些服务器上安装的当前版本的jenkins:
-v
我正在尝试避免在运行playbook时使用-v
选项,希望尽可能保持输出的清洁。
如果在没有TASK [Printing the jenkins version that is installed on each of the servers]***************
ok: [Server1]
ok: [Server2]
ok: [Server3]
TASK [debug] ******************************************************************* ok: [Server1] => {
"changed": false,
"version": "VARIABLE IS NOT DEFINED!"
}
ok: [Server1] => {
"changed": false,
"version": "VARIABLE IS NOT DEFINED!"
}
ok: [Server1] => {
"changed": false,
"version": "VARIABLE IS NOT DEFINED!"
}
选项的情况下运行该剧本,则输出如下所示:
{{1}}
但是它返回的版本没有定义。我很困惑为什么会发生这种情况,因为我已经以相同的方式完成了一系列其他任务的打印而没有任何问题。非常感谢任何建议。
答案 0 :(得分:1)
您可以使用shell并调试
来实现此目的---
- hosts: all
remote_user: user
become: True
become_method: sudo
tasks:
- name: Printing the Jenkins version running on the masters
shell: cat /var/lib/jenkins/config.xml | grep '<version>'
register: version
- debug: var={{ version['stdout'] }}
答案 1 :(得分:0)
您可以创建ansible回调插件,或使用网络中可用的插件 即