Module acl
là một module của Ansible Network Collection, được sử dụng để cấu hình các Access Control Lists (ACLs) trên các thiết bị mạng Cisco IOS. ACLs được sử dụng để kiểm soát quyền truy cập vào các dịch vụ hoặc kết nối mạng từ các nguồn khác nhau. Module này cung cấp các chức năng để thêm, sửa đổi và xóa các ACL trên các thiết bị mạng Cisco IOS, bao gồm cả định nghĩa các quy tắc cho các cổng, giao thức, địa chỉ IP hoặc MAC.
Dưới đây là các tham số (parameters) và tác dụng của từng tham số đó:
access_list
: Tên của ACL cần cấu hình. Tham số này là bắt buộc.rules
: Danh sách các quy tắc cần cấu hình. Tham số này là bắt buộc.state
: Trạng thái của ACL. Có 2 giá trị có thể sử dụng là “present” và “absent”. Giá trị mặc định là “present”.type
: Loại của ACL. Có 2 giá trị có thể sử dụng là “standard” và “extended”. Giá trị mặc định là “standard”.interface
: Tên của interface cần áp dụng ACL.protocol
: Giao thức mạng mà ACL áp dụng cho. Giá trị mặc định là “ip”.comment
: Nhận xét hoặc giải thích cho ACL được cấu hình. Tham số này là tùy chọn.
Chú ý: Trong đó, các tham số access_list
và rules
là bắt buộc phải có khi sử dụng module này. access_list
định danh ACL mà ta muốn cấu hình và rules
bao gồm các quy tắc cần cấu hình trong ACL đó.
Dưới đây là một ví dụ về cách sử dụng module cisco.ios.ios_acls
để tạo ra một ACL trên thiết bị Cisco IOS:
- name: Create ACL on Cisco IOS device
hosts: ios_device
gather_facts: no
tasks:
- name: Create an ACL on Cisco IOS device
cisco.ios.ios_acls:
acl_type: standard
acl_name: test_acl
rules:
- permit 10.10.10.0/24
- deny any
state: present
provider:
host: "{{ inventory_hostname }}"
username: "{{ username }}"
password: "{{ password }}"
authorize: yes
auth_pass: "{{ enable_password }}"
Trong ví dụ này, chúng ta sử dụng module cisco.ios.ios_acls
để tạo một ACL với tên là test_acl
trên thiết bị Cisco IOS. ACL sẽ là loại ACL tiêu chuẩn (standard) và có hai quy tắc: cho phép tất cả các gói tin từ mạng 10.10.10.0/24
và từ chối tất cả các gói tin khác. Nếu ACL này đã tồn tại trên thiết bị, nó sẽ được cập nhật. Để thực hiện hoạt động này, chúng ta sử dụng các thông tin xác thực và quyền truy cập được cung cấp trong phần provider
.
Đây là một ví dụ về cách sử dụng module ios_acl
để tạo Access Control List trên thiết bị Cisco IOS.
Đầu tiên, ta phân tách biến vào một file riêng với tên vars.yml
:
---
# Khai báo biến cho access list
access_lists:
- name: ALLOW_HTTP_HTTPS
rules:
- action: permit
proto: tcp
src: any
dst: any
dst_ports: [80, 443]
Sau đó, ta có thể tạo file playbook với tên acl.yml
như sau:
---
- name: Tạo Access Control List trên thiết bị Cisco IOS
hosts: cisco_devices
gather_facts: no
connection: network_cli
vars_files:
- vars.yml
tasks:
- name: Tạo Access Control List
ios_acl:
access_list: "{{ item.name }}"
rules: "{{ item.rules }}"
state: present
with_items:
- "{{ access_lists }}"
Trong đó:
hosts
: Khai báo các thiết bị cần cấu hình.gather_facts
: Tắt việc thu thập thông tin về hệ thống.connection
: Sử dụng kết nốinetwork_cli
để thực thi lệnh trên thiết bị.vars_files
: Khai báo file chứa biến.ios_acl
: Module để tạo Access Control List trên thiết bị.access_list
: Tên của Access Control List.rules
: Các rule trong Access Control List.state
: Trạng thái của Access Control List, ở đây làpresent
để tạo mới.
Lưu ý rằng, để thực hiện playbook này, cần đảm bảo rằng các thiết bị đã được cấu hình để cho phép truy cập Ansible qua SSH hoặc Telnet và tài khoản được sử dụng có đủ quyền để thực hiện các lệnh cấu hình.