Monday, October 7, 2024

[Ansible] Lesson 15 – Plugin cisco.ios.ios_acls

-

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_listrules 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ối network_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.

Tham khảo: https://docs.ansible.com/ansible/latest/collections/cisco/ios/ios_acls_module.html#ansible-collections-cisco-ios-ios-acls-module

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories