2016-09-13 4 views
0

파일의 블록을 이상적으로 업데이트하는 게임을 작성하고 있지만 대상 파일은 조건에 따라 대략 20 개의 파일이 될 수 있습니다. 이것이 틀림없이 잘못된 것이지만, 내가 원하는 것은 다음과 같습니다 :조건부에 기반한 관용적 인 관용적 인 대상/목적지

- name: update files 
    hosts: localhost 
    user: myself 
    tasks: 
    - blockinfile: 
     dest: /home/me/file1 
     when: {{ condition }} == True 
     dest: /home/me/file2 
     when: {{ condition2 }} == True 

     ... 

     block: | 
     data 
     data 

     ... 

이 작업을 수행하는 관용적 인 방법이나 적절한 방법이 있습니까?

답변

1

소리가 약간 들리는데 문제가 해결되지 않으면 더 나은 해결책을 생각할 수 있다고 생각합니다. 그러나 제공된 정보를 사용하여 로직을 변수로 옮긴 다음 변수를 대상으로 사용한다고 말할 수 있습니다.

rolename_blockinfile_dest: '{% if condition %}/home/me/file1{% elif condition2 %}/home/me/file2{% endif %}' 

그리고 바로 당신의 작업에서 다음과 같은 :

그래서 당신은이 같은 (예 : 역할 디폴트 또는 환경 그룹 바르거나 심지어 포함 바르 파일) 일부 바르 파일이있을 것이다

... 
    tasks: 
    - blockinfile: 
     dest: '{{ rolename_blockinfile_dest }}' 
... 
+0

그래, 그렇게하는 것이 현명한 방법이었습니다. 방금 환경 변수를 작성하여 빌드 프로세스 중에 주입합니다. 팁 고마워! –

관련 문제