Monday, February 24, 2025

[Ansible] Lesson 5 – How Network Automation is Different

-

How Network Automation is Different

Cách thức triển khai mạng truyền thống đòi hỏi nhiều thao tác bằng tay và có nhiều khả năng sai sót. Các nhà quản trị mạng phải sử dụng các công cụ thủ công để cấu hình, quản lý và giám sát các thiết bị mạng. Điều này đặc biệt phức tạp và tốn thời gian đối với các mạng lớn với hàng trăm hoặc hàng nghìn thiết bị.

Sử dụng tự động hoá mạng, các nhà quản trị mạng có thể tự động hóa các tác vụ phức tạp để quản lý, cấu hình và giám sát các thiết bị mạng. Các kịch bản tự động hoá này được thực hiện bằng các công cụ như Ansible, Python và Puppet. Với tự động hoá mạng, các nhà quản trị có thể giảm thiểu thời gian và công sức để quản lý các thiết bị mạng, đồng thời cải thiện tính tin cậy và hiệu suất của mạng.

Tuy nhiên, tự động hoá mạng cũng đòi hỏi các kiến thức kỹ thuật và quản lý đặc biệt, bao gồm các chuẩn mã hóa và các quy tắc an toàn để đảm bảo tính an toàn và bảo mật của mạng. Các nhà quản trị mạng cần phải hiểu rõ các khái niệm như Git, các mô hình phần mềm, những thay đổi liên quan đến cơ sở hạ tầng và các quy tắc an toàn khi sử dụng các công cụ tự động hoá mạng.

Multiple communication protocols

Trong Ansible, các module mạng thực thi trên nút điều khiển thay vì trên các nút được quản lý, điều này cho phép chúng hỗ trợ nhiều giao thức truyền thông khác nhau. Giao thức truyền thông được chọn cho mỗi module mạng phụ thuộc vào nền tảng và mục đích của module đó. Một số module mạng chỉ hỗ trợ một giao thức; một số khác cho phép lựa chọn. Giao thức phổ biến nhất là CLI qua SSH. Bạn có thể thiết lập giao thức truyền thông bằng biến ansible_connection.

Thông báo “ansible_connection: local” đã bị loại bỏ trong Ansible. Thay vào đó, người dùng cần sử dụng một trong các loại kết nối có tính liên tục được liệt kê ở trên. Với kết nối liên tục, người dùng có thể xác định các máy chủ và thông tin đăng nhập chỉ một lần, thay vì phải thêm vào mỗi task. Đồng thời, người dùng cũng cần đặt biến “network_os” cho nền tảng mạng cụ thể mà họ đang giao tiếp. Để biết thêm chi tiết về cách sử dụng từng loại kết nối trên các nền tảng khác nhau, hãy xem các trang cụ thể cho từng nền tảng.

Collections organized by network platform

Collections được tổ chức theo nền tảng mạng là một tập hợp các thiết bị mạng chạy hệ điều hành chung có thể được quản lý bằng một bộ sưu tập Ansible. Mỗi nền tảng mạng có các yêu cầu chia sẻ chung đối với tất cả các module bên trong nó. Ví dụ, để quản lý các thiết bị Cisco, bạn có thể sử dụng các bộ sưu tập cisco.ios, cisco.iosxr, cisco.nxos. Các module trong mỗi nền tảng mạng cụ thể sẽ có những khác biệt nhất định. Vì vậy, cần xem tài liệu cụ thể cho từng nền tảng để biết chi tiết.

Privilege Escalation: enable mode, become, and authorize

Một số nền tảng mạng hỗ trợ tăng cường đặc quyền, trong đó một số tác vụ phải được thực hiện bởi một người dùng có đặc quyền. Trên các thiết bị mạng, điều này được gọi là chế độ enable (tương đương với sudo trong quản trị *nix). Các module mạng của Ansible cung cấp tăng cường đặc quyền cho những thiết bị mạng hỗ trợ điều này. Để biết chi tiết về những nền tảng hỗ trợ chế độ enable, cùng với các ví dụ về cách sử dụng nó, xem tài liệu cụ thể cho từng nền tảng.

Using become for privilege escalation

Sử dụng tham số become: yes ở cấp độ cao nhất của Ansible với become_method: enable để chạy một task, play hoặc playbook với quyền đặc quyền trên bất kỳ nền tảng mạng nào hỗ trợ việc đặc quyền. Bạn phải sử dụng connection: network_cli hoặc connection: httpapi với become: yes và become_method: enable. Nếu bạn đang sử dụng network_cli để kết nối Ansible với các thiết bị mạng của mình, một file group_vars sẽ có dạng:

ansible_connection: ansible.netcommon.network_cli
ansible_network_os: cisco.ios.ios
ansible_become: yes
ansible_become_method: enable

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories