我试图在Jenkins服务器上使用命令模块运行脚本 . 编写脚本时,如果不进行任何配置更改,则应返回0,并且不应更改Ansible任务 .
这是代码:
- name: Script to run
command: java -jar /var/cache/jenkins/war/WEB-INF/jenkins-cli.jar -s http://localhost:8080 groovy "{{ jenkins_home }}/userContent/script.groovy"
register: return_code
changed_when: return_code.stdout != 0
但上面的代码行为始终显示为已更改 .
Ansible输出:
任务[jenkins:要运行的脚本] ********************************已更改:[test] => {“更改“:true,”cmd“:[”java“,” - jar“,”/ var / cache / jenkins / war / WEB-INF / jenkins-cli.jar“,” - s“,”http:// localhost:8080“,”groovy“,”/ var / lib / jenkins / userContent / script.groovy“],”delta“:”0:00:01.547098“,”end“:”2017-02-06 15:31 :05.989134“,”rc“:0,”start“:”2017-02-06 15:31:04.442036“,”stderr“:”[WARN]无法使用SSH密钥进行身份验证 . 以匿名方式进行“,”stdout “:”0“,”stdout_lines“:[”0“],”警告“:[]}
1 回答
您需要将
stdout
值与字符串而不是整数进行比较: