2014-08-18 3 views
0

У меня есть tikitaka3.yml (основной файл yml) и tikitaka3a.yml (playbook для включения).когда условие не оценивается с заявлением include

я предложить пользователю переменной, а затем в разделе Задачи, которые я называю это, например, так:

--- 
- hosts: all 

vars: 
    khan: 
# contents: "{{ lookup('file', '/home/imran/Desktop/tobefetched/file1.txt') }}" 

vars_prompt: 
- name: targetenv 
    prompt: 1.)EPC 2.)CLIENTS 3)TESTERS 
    private: False 
    default: "1" 

gather_facts: no 
tasks: 

- name: Inlude playbook tikitaka3a 
include: /home/khan/Desktop/playbooks/tikitaka3a.yml target=umar 
when: targetenv.stdout|int < 2 #this statement has no effect 
#when: targetenv == 1 #Neither does this statement 
#when: targetenc == "1" #and neither does this statement have affect 


#- name: stuff n stuff # This task will give an error if not commented 
# debug: var=targetenv.stdout 

включаемой заявление всегда приходит в аффект, без когда состояние когда-либо оценивается.

Почему это происходит?

+0

Прежде всего, вы должны форматировать Ваш код. Правильный оператор: 'when: targetenv ==" 1 "' (У вас есть опечатка в вашем заявлении, «targetenc») – ProfHase85

+0

Я просто набрал ее во время выполнения. Я попробовал все _approaches_, которые я показал – Khan

ответ

1

Когда вы включаете файл задачи Ansible, он присоединяет условие when: ко всем включенным задачам. Это означает, что вы увидите задачи, отображаемые даже тогда, когда условие when: является ложным, хотя все задачи будут пропущены.

Одна из проблем, с кодом выше targetenv.stdout, вот рабочая версия с соответствующим форматированием:

- hosts: all 
    gather_facts: no 
    vars_prompt: 
    - name: targetenv 
     prompt: 1.)EPC 2.)CLIENTS 3)TESTERS 
     private: False 
     default: "1" 

    tasks: 
    - name: Inlude playbook tikitaka3a 
     include: roles/test/tasks/tikitaka3a.yml target=umar 
     when: targetenv|int < 2 
+0

Все еще включает в себя плейер, даже когда я ввожу 2 или 3 при выполнении плей-листа – Khan

+0

Какая версия файла? Это отлично работает для меня. – jarv

+0

Обновлено, чтобы указать, что ваш файл задачи будет включен, но все задачи будут пропущены. – jarv