카테고리 없음

[Ansible] Template 템플릿 사용하기

minjiwoo 2023. 3. 7. 09:41
728x90

Ansible에서는 템플릿 언어로 jinja2 를 사용한다. 

jinja2는 python의 템플릿 언어이며, 동적 데이터를 생성하는 데 사용하다. 주로, 복수의 마크업과 소스코드를 생성하는데 사용

{{ Python Code 또는 변수 참조 }}

{% %} 제어 문 

{# #} 주석처리

 

template: 이라고 추가하고, 템플릿 구성 파일인 jinja2 파일을 src 에 추가할 수 있다. 생성되는 템플릿 파일의 위치를 dest에 지정할 수 있다. 

- hosts: ansi-node1
  vars:
    date: 2023-03-07
  tasks: 
  - template:
      src: temp_dir/template1.j2
      dest: /tmp/template_test

 

template1.j2 파일 내용 

{{ date }}
{# loop #}
{% for i in range(1,6) %}
user{{ i }}
{% endfor %}

간단한 파이썬 for 문으로 유저 아이디를 만드는 템플릿이다. 

플레이북 실행하기 

$ ansible-playbook tem1.yaml

 

실행 후, ansi-node1에 접속한다. 그리고 dest 에 설정한 경로에서 파일을 확인해보면 다음과 같다. 

vagrant@ansi-node1:/tmp$ cat template_test
2023-03-07
user1
user2
user3
user4
user5

 

728x90