Module cisco.ios.ios_l2_interfaces
trong Ansible là một module thuộc Resource Module
được sử dụng để cấu hình các interface mạng L2 trên các thiết bị Cisco IOS. Module này cung cấp khả năng quản lý các thuộc tính của các cổng Ethernet, VLANs, 802.1Q trunks và các tính năng liên quan đến L2 khác.
Module này yêu cầu phiên bản Ansible 2.9 trở lên và Cisco IOS 15.2 trở lên. Để sử dụng module, bạn cần phải có quyền truy cập vào các thiết bị Cisco IOS cần quản lý.
Các tham số chính của module cisco.ios.ios_l2_interfaces
bao gồm:
name
: Tên của interface mạng L2 cần quản lý.description
: Mô tả của interface mạng L2.access_vlan
: VLAN được sử dụng cho truy cập mạng L2.native_vlan
: VLAN mặc định của interface mạng L2.mode
: Chế độ hoạt động của interface mạng L2 (access, trunk, dynamic auto, dynamic desirable, etc.).trunk_allowed_vlans
: Danh sách các VLAN được cho phép truy cập trên cổng trunk.shutdown
: Cấu hình tắt hoặc bật interface mạng L2.state
: Trạng thái hiện tại của interface mạng L2.
Một số tham số khác của module bao gồm: stp_bpdu_guard
, stp_bpdu_filter
, stp_cost
, stp_guard
, stp_link_type
, stp_port_priority
, stp_port_type
, cdp
, lldp
và vtp
.
Ví dụ sử dụng module cisco.ios.ios_l2_interfaces
để cấu hình một interface mạng L2 trên thiết bị Cisco IOS:
- name: Configure L2 interface on Cisco IOS switch
hosts: ios_switch
gather_facts: no
connection: network_cli
vars:
l2_interface: GigabitEthernet1/0/1
l2_description: Access to PC1
l2_mode: access
l2_vlan: 100
tasks:
- name: Configure L2 interface
cisco.ios.ios_l2_interfaces:
name: "{{ l2_interface }}"
description: "{{ l2_description }}"
mode: "{{ l2_mode }}"
access_vlan: "{{ l2_vlan }}"
register: result
- name: Display result
debug:
var: result
Trong ví dụ này, chúng ta định nghĩa biến l2_interface
là tên của interface mạng L2 cần cấu hình (GigabitEthernet1/0/1
), biến l2_description
là mô tả của interface (Access to PC1
), biến l2_mode
là chế độ của interface (access
), và biến l2_vlan
là VLAN ID của VLAN được gán cho interface này (100
).
Sau đó, chúng ta sử dụng module cisco.ios.ios_l2_interfaces
để cấu hình interface mạng L2 với các thông số đã định nghĩa ở trên. Kết quả của task này sẽ được lưu vào biến result
.
Cuối cùng, chúng ta sử dụng module debug
để hiển thị kết quả của task trước đó.
Ví dụ về cấu hình trunk và access VLAN 5 interface trên thiết bị Cisco IOS:
File biến: vars.yaml
---
vlan_id: 5
trunk_allowed_vlans: "1-5"
interface_name: GigabitEthernet1/0/1
File cấu hình: config.yaml
---
- name: Configuring VLAN {{ vlan_id }} for access port
ios_vlan:
vlan_id: "{{ vlan_id }}"
name: Access-VLAN-{{ vlan_id }}
state: present
- name: Configuring interface {{ interface_name }} as access port
ios_l2_interface:
name: "{{ interface_name }}"
description: "Access port for VLAN {{ vlan_id }}"
access:
vlan: "{{ vlan_id }}"
state: present
- name: Configuring interface {{ interface_name }} as trunk port
ios_l2_interface:
name: "{{ interface_name }}"
description: "Trunk port for VLANs {{ trunk_allowed_vlans }}"
trunk:
allowed_vlans: "{{ trunk_allowed_vlans }}"
state: present
Trong ví dụ này, chúng ta sử dụng một biến vlan_id
để xác định VLAN cho access port và một biến trunk_allowed_vlans
để chỉ định các VLAN được phép truy cập thông qua trunk port. Chúng ta cũng sử dụng một biến interface_name
để xác định tên của interface mạng cần cấu hình.
Chúng ta phân tách cấu hình và biến thành 2 file riêng biệt để dễ quản lý và tái sử dụng. Để chạy playbook với các file này, chúng ta có thể sử dụng lệnh ansible-playbook -i inventory.ini config.yaml -e @vars.yaml
.