我是ansible的新手。我已经配置了Jenkins-Ansible来运行一些作业。我的main.yml文件包含:
- name: Check for <user1>
become: false
become_user: <user1>
shell: "/path/on/destination/server/<applicationhealthcheck.sh>
register: output
ignore_errors: yes
when: <variable1> == "<user1>" or <variable1> == "<user2>"
tags:
- check
- start
- name: Show output
debug:
msg: "{{ output.stdout_lines }}"
ignore_errors: yes
tags:
- always在Jenkins中构建时,我得到的错误是:
fatal: destination_server_name: FAILED!=> {"msg":“该任务包含一个变量未定义的选项。错误是:'dict‘对象没有属性’‘stdout_ line’\n\n错误似乎在'/ansible/playbook/path/main.yml':行,列中,但可能在\n文件的其他位置,具体取决于确切的语法问题。\n\n有问题的行似乎是:\n\n\n-名称:显示输出\n此处\n\异常类型:\nexception“'dict‘对象没有属性’stdout_lines‘”“}
对于如何摆脱这个错误有什么建议吗?
发布于 2021-11-24 16:39:41
您的第一个任务与第二个任务具有不同的条件和标记,因此它并不总是运行。当它不运行时,output.stdout_lines就不存在。有很多方法可以解决这个问题。
您可以确保条件和标记匹配。
您可以在第二个任务上设置条件:
- name: Show output
debug:
msg: "{{ output.stdout_lines }}"
tags:
- always
when: output.stdout_lines is defined您可以提供默认值:
- name: Show output
debug:
msg: "{{ output.stdout_lines | default('no output') }}"
tags:
- always等。
https://stackoverflow.com/questions/70097449
复制相似问题