Site logo

Jinja2 Templates trong Ansible: Hướng dẫn tạo file cấu hình động với Template Engine

5:00 read

Trong các bài trước, chúng ta đã biết cách quản lý biến trong Ansible. Tuy nhiên, để ứng dụng những biến này vào file config thực tế, ta cần sử dụng Template với Jinja2.

Jinja2 là một engine template mạnh mẽ giúp tạo ra file cấu hình động dựa trên biến, điều kiện, vòng lặp,… Được sử dụng rất nhiều trong việc tạo file .env, config Nginx, systemd service, v.v.


Jinja2 Template là gì?

Template trong Ansible là các file mẫu (.j2 hoặc .tmpl) chứa:

✔ Text tĩnh (giống file cấu hình thông thường) ✔ Biểu thức động của Jinja2: {{ variable }} ✔ Điều kiện, vòng lặp, filters,…

Khi chạy playbook, Ansible sẽ render template và tạo file config thực tế trên server.


Ví dụ Template cơ bản

File: templates/app.env.j2:

APP_NAME={{ app_name }}
APP_ENV={{ app_env }}
DB_HOST={{ db_host }}
DB_USER={{ db_user }}
DB_PASS={{ db_pass }}

Trong Playbook:

- name: Tạo file .env cho ứng dụng
  template:
    src: app.env.j2
    dest: /var/www/app/.env
    owner: deploy
    group: www-data
    mode: '0640'

Yêu cầu đăng nhập

Vui lòng đăng nhập để truy cập nội dung này

Additional Resources

Course Guide

Comprehensive PDF guide with examples

GitHub Repository

Example code for all lessons

Discussion

Have a question about this lesson? Post it here and get answers from instructors and peers.