Ansible: 작업 또는 템플릿의 조건?

Ansible: 작업 또는 템플릿의 조건?

파일 내용을 변수에 종속되게 만드는 방법에는 두 가지가 있는 것 같습니다.

copy:
  path: /foo
  content: |
    {{ if myFoo }}
      ; lots of stuff
    {{ else }}
      ; lots of other stuff
    {{ end }}

아니면 내가 할 수 있어

copy:
  path: /foo
  content: |
      ; lots of stuff
when: myFoo

그리고

copy:
  path: /foo
  content: |
      ; lots of other stuff
when: not myFoo

여기서 정상적인 구조는 무엇입니까? 당신은 무엇을 원해요?

답변1

과제를 다시 작성해야 했어요.

- copy:
        dest: /tmp/ansiblefile.txt
        content: |
          {% if myFoo %}
            ; lots of stuff
          {% else %}
            ; lots of other stuff
          {% endif %}
- copy:
    dest: /foo
    content: |
      ; lots of stuff
  when: myFoo

- copy:
    dest: /foo
    content: |
      ; lots of stuff
  when: not myFoo

제 생각에는 둘 다 괜찮습니다. 그러나 나는 jinja 템플릿을 다루지 않는 것이 더 쉽다는 것을 알기 때문에 후자의 접근 방식을 사용합니다. jinja 템플릿에 대한 문서는 그다지 자세하지도 않고 이해하기 쉽지도 않습니다.

관련 정보