Jinja2 Templates trong Ansible: Hướng dẫn tạo file cấu hình động với Template Engine
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.
