Ansible Collections
Bạn là network engineer, quản lý hạ tầng lớn với nhiều thiết bị từ Cisco, Juniper, Arista.
Ansible có module built-in, nhưng trong thực tế bạn thường cần thêm:
- module chuyên biệt theo vendor
- roles/playbooks tối ưu cho từng dòng thiết bị
- plugins mở rộng cho workflow vận hành
Đây là lúc Ansible Collections phát huy tác dụng.
1) Ansible Collections là gì?
Collection là gói nội dung Ansible tự chứa (self-contained), có thể bao gồm:
- modules
- roles
- plugins
- playbooks và assets liên quan
Mục tiêu: đóng gói + phân phối + tái sử dụng nội dung automation một cách chuẩn hóa.
Ansible Collection
├─ modules/
├─ roles/
├─ plugins/
├─ playbooks/
└─ docs/metadata
Collections có thể được tạo bởi:
- cộng đồng Ansible
- vendor (Cisco, Juniper, Arista, AWS…)
- team nội bộ của bạn
2) Bài toán đa vendor trong network automation
Khi cần tự động hóa cho nhiều hãng thiết bị, bạn có thể dùng các collection theo vendor như:
network.cisconetwork.junipernetwork.arista
Ví dụ cài collection Cisco:
ansible-galaxy collection install network.cisco
Sau khi cài, bạn có thể gọi module/role từ collection này trong playbook để xử lý các tác vụ đặc thù Cisco và tích hợp vào workflow Ansible sẵn có.
3) Lợi ích chính của Collections
3.1 Mở rộng functionality
Collections giúp mở rộng native capabilities của Ansible.
Ví dụ với cloud:
- cài collection AWS
- dùng module của collection để quản lý resources
=> Bạn không bị giới hạn trong tập module mặc định.
3.2 Modularity + Reusability
Bạn có thể tạo custom collection chứa role/module/plugin nội bộ và tái sử dụng qua nhiều project.
ansible_collections/
company/
network_ops/
plugins/
roles/
modules/
playbooks/
galaxy.yml
Khi đóng gói như vậy, logic automation tách bạch, dễ maintain, dễ chia sẻ cho team.
3.3 Distribution & dependency management đơn giản hơn
Dùng requirements.yml để pin version collection và cài đồng loạt.
collections:
- name: network.cisco
version: ">=1.0.0,<2.0.0"
- name: network.juniper
version: "3.2.1"
- name: network.arista
version: "2.4.0"
Cài toàn bộ dependencies:
ansible-galaxy collection install -r requirements.yml
Cách này giúp:
- nhất quán version giữa local/CI/prod
- giảm lỗi do lệch dependency
- audit stack automation dễ hơn
4) Gợi ý áp dụng thực tế
- Luôn ưu tiên khai báo collection qua
requirements.ymlthay vì cài thủ công rời rạc. - Pin version rõ ràng cho môi trường production.
- Tách collection nội bộ cho domain lớn (network, security, observability…).
- Review changelog trước khi nâng major version.
Kết luận
Ansible Collections là nền tảng quan trọng để scale automation theo hướng:
- đa vendor (Cisco/Juniper/Arista…)
- mô-đun hóa nội dung playbook
- quản lý version/dependencies có kiểm soát
Khi dùng đúng cách, bạn sẽ tích hợp được các năng lực chuyên biệt vào cùng một workflow Ansible, giảm rủi ro vận hành và tăng tốc độ triển khai hạ tầng.