Trong quá trình làm việc với Ansible, chúng ta thường viết một playbook chứa nhiều tasks. Tuy nhiên, không phải lúc nào bạn cũng muốn chạy tất cả các tasks. Có lúc bạn chỉ muốn chạy một vài task nhất định để tiết kiệm thời gian hoặc để phục vụ nhu cầu kiểm thử.
Đây chính là lúc tags trong Ansible phát huy tác dụng. Tags cho phép bạn chọn lọc và kiểm soát các tasks sẽ được thực thi trong playbook.
Xem thêm:
Ansible Vault – Bài 11
Ansible Role – Bài 10
1. Cách tạo playbook với tags
Giả sử chúng ta có một playbook chạy trên localhost chỉ để minh họa.
Tạo file tags_ansible.yml với nội dung sau:
- name: Demo about Ansible Tags
hosts: app
gather_facts: false
tasks:
- name: Hi, this is debug message 1
debug:
msg: "This is task number 1"
tags:
- first
- name: Hi, This is debug message 2
debug:
msg: "This is task number 2"
tags:
- second
- common
- name: Hi, This is debug message 3
debug:
msg: "This is task number 3"
tags:
- third
- name: Hi, This is debug message 4
debug:
msg: "This is task number 4"
tags:
- fourth
- name: Hi, This is debug message 5
debug:
msg: "This is task number 5"
tags:
- first
- name: Hi, This is debug message 6
debug:
msg: "This is task number 6"
tags:
- sixth
Ở đây:
- Có 6 tasks.
- Mỗi task được gắn một hoặc nhiều tags.
- Ví dụ: task 2 có tags
secondvàcommon. Task 5 dùng lại tagfirst.
2. Thực thi playbook với tags
2.1. Chạy toàn bộ tasks
ansible-playbook tags_ansible.yml
Tất cả 6 tasks đều chạy.
2.2. Chạy theo tag cụ thể
ansible-playbook tags_ansible.yml --tags first
Chỉ chạy những tasks có tag first, tức là task 1 và task 5.
2.3. Chạy nhiều tags cùng lúc
ansible-playbook tags_ansible.yml --tags "first,second"
Sẽ chạy các tasks có tag first (task 1, 5) và second (task 2).
2.4. Bỏ qua một số tags
ansible-playbook tags_ansible.yml --skip-tags first
Chạy tất cả tasks trừ những tasks có tag first (tức task 1 và task 5 sẽ bị bỏ qua).
2.5. Liệt kê toàn bộ tags trong playbook
ansible-playbook tags_ansible.yml --list-tags
Ví dụ kết quả:
playbook: tags_ansible.yml
play #1 (localhost): Demo về Ansible Tags TAGS: []
TASK TAGS: [first, second, common, third, fourth, sixth]
3. Quy tắc quan trọng khi dùng tags
- Tags phân biệt chữ hoa và chữ thường (case-sensitive).
commonkhác vớiCommon.
- Một task có thể có nhiều tags.
- Ví dụ:
tags: [second, common].
- Ví dụ:
- Một tag có thể được gắn cho nhiều tasks.
- Ví dụ: tag
firstgắn cho task 1 và task 5.
- Ví dụ: tag
- Có thể kết hợp
--tagsvà--skip-tagsđể linh hoạt trong thực thi.
Cảm ơn bạn đã tham khảo ansible tutorial trên ttnguyen.net
Bài viết cùng chủ đề:
Ansible Templates – Bài 9
Ansible Handler – Bài 8
Ansible Modules – Bài 7