首页 文章

如何在Ansible中工作时改变?

提问于
浏览
0

我试图在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 回答

  • 2

    您需要将 stdout 值与字符串而不是整数进行比较:

    - 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: script_call
      changed_when: script_call.stdout != "0"
    

相关问题