Python script to move access points from an old WLC (Wireless LAN Controller) to a new Cisco Catalyst 9800 WLC:
Example Code Snippets
- Collecting configuration data from the old WLC (AireOS):
import netmiko
old_wlc_ip = ‘192.168.1.100’
old_wlc_username = ‘admin’
old_wlc_password = ‘password’
ssh_conn = netmiko.Netmiko(
hostname=old_wlc_ip,
username=old_wlc_username,
password=old_wlc_password
)
config_data = ssh_conn.send_command(‘show running-config’)
2.Processing data to extract AP information:
import csv
ap_info = []
for line in config_data.splitlines():
if ‘ap-name’ in line:
ap_name = line.split()[1]
ap_info.append({‘ap_name’: ap_name, ‘wlc_ip’: old_wlc_ip})
with open(‘ap_config.csv’, ‘w’, newline=”) as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=[‘ap_name’, ‘wlc_ip’])
writer.writeheader()
writer.writerows(ap_info)
- Sending configuration commands to the new 9800 WLC:
new_wlc_ip = '192.168.1.200'
new_wlc_username = 'admin'
new_wlc_password = 'password'
ssh_conn = netmiko.Netmiko(
hostname=new_wlc_ip,
username=new_wlc_username,
password=new_wlc_password
)
with open('ap_config.csv', 'r') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
ap_name = row['ap_name']
wlc_ip = row['wlc_ip']
config_cmd = f'config ap primary-base {wlc_ip} {ap_name}'
ssh_conn.send_command(config_cmd)


Leave a comment