Ansible有条件后执行任务

时间:2020-07-30 16:00:42

标签: windows automation ansible yaml

我想创建一个Ansible剧本来安装和检查Windows服务器的Java版本。 现在我有这个:

---
- hosts: all
  gather_facts: false
  become: yes
  tasks:
    - name: Check if java is installed
      win_command: java -version
      register: java_result
      assert:
        that: 
          - java_result is failed
      fail_msg: "Failed - Java is not installed"
           
    - name: Install Java
      win_chocolatey:
        name: "{{ jdk_package }}"
        state: present
        version: "{{ java_major_version }}.{{ java_minor_version }}"
        when: java_version.stdout | version_compare(, '<')

    - name: Set Java_home
      win_environment:
        state: present
        name: JAVA_HOME
        value: 'c:\program files\java\jdk1.{{ java_major_version }}_{{ java_minor_version }}'
        level: machine

    - name: Add Java to path
      win_path:
        elements:
          - 'c:\program files\java\jdk{{ java_major_version }}_{{ java_minor_version }}\bin'

我无法测试我的所作所为,这就是为什么我来寻求帮助。 在第一个任务中,我要检查Java版本,我想添加三种情况:

  • 未安装Java的地方,返回错误并为另一台服务器执行剧本
  • 未更新Java的地方,执行以下任务
  • 一切正常,为另一台服务器执行剧本

是否可以在Ansible中创建if,else if条件?请提供示例或解释

0 个答案:

没有答案
相关问题