on
OpenStack
- Get link
- Other Apps
Nhu cầu rất đơn giản, cùng một file cấu hình của một phần mềm nhưng khi triển khai trên các server khác nhau thì lại cần cấu hình IP khác nhau? Với Jinja2 template, Ansible sẽ không những giải quyết được mà còn làm rất tốt việc đó vì Jina2 template rất dễ đọc và dễ tiếp cận.
Hãy bắt đầu bằng việc copy paste và thử chạy playbook sau:
[group1]
127.0.0.1 ansible_user=daikk115 ansible_password=1 custom_var=anything
This is my IP: {{ inventory_hostname }}
This is my variable: {{ custom_var }}
- hosts: group1
tasks:
- name: Generate configuration file
template:
src: file.conf.j2
dest: /tmp/file.conf
daikk115@daikk115 ~/Workspace/ansible $ ansible-playbook -i inventory playbook.yml
PLAY [group1] ****************************************************************************************************************************************
TASK [Gathering Facts] *******************************************************************************************************************************
ok: [127.0.0.1]
TASK [Generate configuration file] *******************************************************************************************************************
changed: [127.0.0.1]
PLAY RECAP *******************************************************************************************************************************************
127.0.0.1 : ok=2 changed=1 unreachable=0 failed=0
daikk115@daikk115 ~/Workspace/ansible $ cat /tmp/file.conf
This is my IP: 127.0.0.1
This is my variable: anything
[group1]
127.0.0.1 ansible_user=daikk115 ansible_password=1 custom_var=another_thing
daikk115@daikk115 ~/Workspace/ansible $ cat /tmp/file.conf
This is my IP: 127.0.0.1
This is my variable: another_thing
Ok, vậy là chúng ta đã có bước đầu tiên chạy thành công Ansible với template. Có một vài chú ý ở phần vừa rồi:
Vậy biến có thể định nghĩa ở những đâu?
Vậy là bạn đã có những hình dung đầu tiên về việc sử dụng template trong Ansible. Dưới đây là một số ví dụ thực tế hơn cho thấy tầm quan trọng của template trong Ansible.
Appendix
Phần này mình chỉ muốn giới thiệu cơ bản về template với kiểu truyền biến đơn giản. Nếu các bạn muốn tìm hiểu sâu hơn, các tài liệu sau sẽ đầy đủ hơn:
Về cơ bản, trong jinja2 template, chúng ta cũng có một số kỹ thuật tương tự các ngôn ngữ lập trình như:
Hi vọng, các thời gian tới, mình có thể viết thêm các bài đi sâu hơn về cách sử dụng template này cho các bạn muốn tìm hiểu kỹ hơn! :D
Comments
Post a Comment