ansible条件句;什么时候;不适用于角色

ansible条件句;什么时候;不适用于角色,ansible,ubuntu-14.04,yaml,ansible-playbook,Ansible,Ubuntu 14.04,Yaml,Ansible Playbook,在我的playbook中,我有一个根据playbook命令中的版本执行角色的条件,但当我添加version=8时,它会执行这两个角色 - hosts: tomcat-servers remote_user: root become: yes become_method: sudo pre_tasks: - debug: var=version roles: - { role: tomcat7, when: version == '7' } - { r

在我的playbook中,我有一个根据playbook命令中的版本执行角色的条件,但当我添加version=8时,它会执行这两个角色

- hosts: tomcat-servers
  remote_user: root
  become: yes
  become_method: sudo

  pre_tasks:
    - debug: var=version
  roles:
    - { role: tomcat7, when: version == '7' }
    - { role: tomcat8, when: version == '8' }
命令:

ansible-playbook -i hosts site.yml --extra-vars "version=8"
对于调试输出:

TASK [debug] *******************************************************************
ok: [192.168.139.129] => {
    "version": "8"
}
有什么帮助吗

ansible 2.1.0.0

(上述pastebin的样本输出)

从上面的任务可以看出,有两种类型:

  • 跳过:[192.168.139.129]
  • ok:[192.168.139.129]
  • 这是一种通知您是否执行任务的方式

    因此,当您指定
    version=8
    时,您只执行tomcat8角色,但tomcat7任务显示为
    跳过的

    如果启用颜色,则可以看到任务的不同颜色(跳过=蓝色,更改=黄色)


    这太奇怪了,我在当地试过,没问题。你能添加一个
    pre\u tasks
    来调试打印版本值吗?我是ansible的初学者,你能告诉我怎么做吗请在页面中搜索
    pre\u tasks
    ,以获取示例。您需要执行类似于
    -debug:var=version
    ()的操作。谢谢,我用输出控制台更新了我的问题。您还可以粘贴示例输出吗?(如果角色步骤太多,则截断它们)要禁用显示跳过的任务,请参阅
    ubuntu# ansible-playbook -i hosts site.yml --extra-vars "version=8"
    
    PLAY [tomcat-servers] **********************************************************
    
    TASK [setup] *******************************************************************
    ok: [192.168.139.129]
    
    TASK [debug] *******************************************************************
    ok: [192.168.139.129] => {
        "version": "8"
    }
    
    TASK [tomcat7 : Install Java 1.8] **********************************************
    skipping: [192.168.139.129]
    
    [..]
    TASK [tomcat8 : Install Java 1.8] **********************************************
    ok: [192.168.139.129]
    
    TASK [tomcat8 : add group "tomcat"] ********************************************
    ok: [192.168.139.129]
    
    [...]
    PLAY RECAP *********************************************************************
    192.168.139.129            : ok=14   changed=0    unreachable=0    failed=0