2016-07-27 96 views
0

我正在嘗試編寫一個要在4組中執行的任務。其中2個基於位置'sb''ada',其中2個基於分佈。每個組合都有單獨的模板:有條件執行失敗

sb - redhat - template 1 
sb - aix  - template 2 
ada - redhat - template 3 
ada - aix  - template 4 

主機:

[redhat] 
redhat1 
redhat2 

[sb] 
sdbcf1 
aix2 
aix2 

然而,當我使用「何時」,如下執行與模板模塊的任務。面臨的挑戰是,任務在第一組上運行,在第二種情況下被忽略。我希望只有當一個服務器在兩個組中的時候才運行任務,在這種情況下,我沒有一個通用的服務器。如何才能做到這一點 ?我究竟做錯了什麼 ?

- name: Copying our rsyslog template to Redhat servers in sb 
    template: src=rsyslog.conf.sb.lx.j2 dest=/etc/rsyslog.conf.test owner=root mode=0600 
    when: (ansible_distribution == "RedHat" and "'sb' in {{group_names}}") 
    notify: restart rsyslog 

回答

0

不要使用模板裏面的東西when:聲明:

when: ansible_distribution == "RedHat" and "sb" in group_names 
+0

感謝蘇沃洛夫先生,它的工作:) –

+0

@GanaSagar太好了!不要忘記標記接受的答案。 –