比如我们要安装java,但如果已经安装了,就没必要再执行了,怎么实现呢?
如下图,把shell执行结果输出到变量 res
- name: Check java
shell: source /etc/profile && java -version
register: res
ignore_errors: True
- name: Decompression jdk.tar.gz
unarchive: src=jdk-8u161-linux-x64.tar.gz dest=/app/
when: res.failed == True
或者设置为fail 但这样所有后面的脚本都会中断
- name: Check java
fail: msg="java已经安装"
when: res.failed == False
文章讲述了如何在Ansible脚本中检查Java是否已安装,如果已安装则避免重复执行安装步骤。通过`shell`模块执行`java-version`并存储结果到变量`res`,然后使用`when`条件判断`res.failed`来决定是否解压并安装JDK。如果`res.failed`为`False`,说明Java已安装,可以选择失败(`fail`)但会中断后续任务,或者仅在检测失败时执行解压缩任务。
2097

被折叠的 条评论
为什么被折叠?



