มีวิธีอัตโนมัติในการสำรองข้อมูลการกำหนดค่าจากคอนโทรลเลอร์ WLC 2504 หรือไม่?


11

ฉันกำลังมองหาวิธีสำรองข้อมูลไฟล์กำหนดค่าคอนโทรลเลอร์ผ่านกระบวนการอัตโนมัติ ฉันเห็นลิงก์ไปยังเว็บอินเตอร์เฟสซึ่งดูเหมือนจะทำสำเนา tftp หนึ่งครั้งของการกำหนดค่าไปยังโฮสต์ระยะไกล แต่ฉันกำลังมองหาวิธีกำหนดเวลาการคัดลอก

ไม่มีใครรู้วิธีการสำรองข้อมูลการกำหนดค่าอัตโนมัติสำหรับ Cisco WLCs หรือไม่


คุณเห็นคำถามนี้หรือไม่ ไม่หวือหวาโดยตรง แต่อาจเป็นประโยชน์ ...
Craig Constantine

1
ขอบคุณ @CraigConstantine อย่างไรก็ตาม WLCs เรียกใช้ซอฟต์แวร์ที่กำหนดเองซึ่งไม่เป็นไปตาม IOS-isms ทั่วไปเช่น "term len 0" - อาจมีคำสั่งที่คลุมเครืออยู่ที่ไหนสักแห่งเพื่อให้สามารถถ่ายโอนไฟล์ config ได้อย่างแท้จริง แต่ฉันยังไม่พบ มัน.
ปีเตอร์เกรซ

1
... แล้วซิสโก้นี้รองรับเธรดหรือไม่
Craig Constantine

2
จะใช้โครงสร้างพื้นฐาน Prime Prime ของซิสโก้ แต่ฉันคิดว่า OP กำลังมองหาตัวเลือกที่ไม่มีต้นทุน
Generalnetworkerror

คำตอบ:


8

ใช้สคริปต์เพื่อเข้าสู่ WLC และเรียกใช้คำสั่งถ่ายโอน: http://www.cisco.com/en/US/docs/wireless/controller/6.0/command/reference/cli60.html#wp1327209

คุณสามารถใช้สิ่งนี้เพื่ออัพโหลดการกำหนดค่าจาก WLC ไปยังเซิร์ฟเวอร์อื่นผ่านทาง TFTP / SFTP / FTP

(Cisco Controller) >transfer upload mode sftp 

(Cisco Controller) >transfer upload username my-osx-user

(Cisco Controller) >transfer upload password my-os-password

(Cisco Controller) >transfer upload serverip 192.168.1.10

(Cisco Controller) >transfer upload path /Users/my-osx-user/

(Cisco Controller) >transfer upload filename wlc.config

(Cisco Controller) >transfer upload datatype config

(Cisco Controller) >transfer upload start

Mode............................................. SFTP
SFTP Server IP................................... 192.168.1.10
SFTP Server Port................................. 22
SFTP Path........................................ /Users/my-osx-user/
SFTP Filename.................................... wlc.config
SFTP Username.................................... my-osx-user
SFTP Password.................................... *********
Data Type........................................ Config File 
Encryption....................................... Disabled

                                                          **************************************************
                            ***  WARNING: Config File Encryption Disabled  ***
                                                                              **************************************************


Are you sure you want to start? (y/N) y

SFTP Config transfer starting.

File transfer operation completed successfully.

(Cisco Controller) >

ในขณะที่ลิงก์ชี้ไปที่ WLC 6.0 ตัวอย่างก็รันบน 7.4


sftp นั้นใช้ได้กับคอนโทรลเลอร์บางตัวเท่านั้นหรือไม่? ฉันสามารถเลือก tftp หรือ ftp เท่านั้น
Peter Grace

วิธีนี้ใช้ได้กับ tftp และสามารถทำงานอัตโนมัติผ่านสิ่งที่คาดหวัง นี่เป็นการแก้ปัญหาของฉัน!
Peter Grace


5

ความคาดหวังอาจเป็นตัวเลือกที่ดีในการพิจารณางาน

ด้านล่างนี้เป็นตัวอย่างเทมเพลตที่ฉันได้รวบรวมไว้เพื่อแสดงความคิดเห็นเพื่อให้คุณได้เล่นด้วย มันจะเข้าสู่ WLC คว้าการกำหนดค่าการทำงานและผนวกเข้ากับไฟล์ที่คุณเลือก

ตัวอย่างชื่อไฟล์และตำแหน่งคือ /var/log/script-log/config-log.txt

คุณจะต้องแก้ไขชื่อไฟล์และที่ตั้งเป็นไฟล์ที่คุณเลือก (ที่มีสิทธิ์เพียงพอ) รวมถึงชื่อผู้ใช้รหัสผ่านและที่อยู่ IP ของ WLC ของคุณ

ในที่สุดคุณสามารถแก้ไข crontab ของคุณเพื่อรันสคริปต์สำรองโดยใช้ช่วงเวลาที่ต้องการ

ตัวอย่าง Crontab:

# Run configuration backup every night at midnight
0 0 * * * /path/to/script/script-name

ตัวอย่างสคริปต์สำรองข้อมูลการกำหนดค่า:

#!/usr/bin/expect

set timeout 15

set user "username-here"
set password "password-here"
set ipaddress1 "ip-address-here"


# Store the current date in 'date' and add header to log for appending separation

catch { exec sh -c { date } } date
set env(date) "$date"
exec sh -c {
             {
               echo -e "\n\n==================================================="
               echo -e "= WLC Configuration - $date"
               echo -e "===================================================\n\n"
             } >>/var/log/script-log/config-log.txt
}

# Log to the log.txt file and append to the log on subsequent runs (a)

set log [open "/var/log/script-log/config-log.txt" a]
set accum {}

# Expect diagnostic information with 1 | off = 0

exp_internal 0

# View stdout with 1 | off = 0

log_user 0

# Connect to physical WLC (ipaddr) with ssh

spawn ssh $ipaddress1
match_max 100000
sleep 1

match_max [expr 32 * 1024]
while 1  {
      expect {
        "no)?" {send "yes\r"}
        "n as:*" {send "$user\r"}
        "ser:*" {send "$user\r"}
        "assword:*" {send "$password\r"}
        "r) >"             {break}
        "denied"        {send_user "Can't login\r"; exit 1}
        "refused"       {send_user "Connection refused\r"; exit 2}
        "failed"        {send_user "Host exists. Check ssh_hosts file\r"; exit 3}
         timeout         {send_user "Timeout problem\r"; exit 4}
      }
    }

# send carriage return (\r) to make sure we get back to CLI prompt

send "\r"
sleep 1

# Remove scroll limit and show running configuration

send "config paging disable\r"
sleep 1
send "show run-config\r"
sleep 1
expect {
         "nue..." {send "\r"}
}
sleep 1
send "logout\r"
sleep 1
# Upon logging out you can either save any pending changes with y or simply use n to ignore them
send "y\r"
sleep 4

# Grab string that matched the greedy regexp

expect {
        -regexp {..*} {
            set accum "${accum}$expect_out(0,string)"
            exp_continue
        }
    }

puts $log $accum

ฉันหวังว่าจะใช้ความคาดหวัง แต่ผลลัพธ์จาก run-config ไม่สามารถอยู่เหนือการกำหนดค่าดิบของ "การโอนการอัพโหลด" ดังที่กล่าวไว้ในคำตอบของ legioxi สิ่งที่ฉันทำได้คือใช้สคริปต์ที่คาดไว้เพื่อทริกเกอร์คำสั่งเริ่มต้นการอัปโหลดการถ่ายโอนในช่วงเวลาปกติ
Peter Grace

4

ฉันรู้ว่านี่เป็นโพสต์เก่า แต่วิธีที่ดีที่สุดที่ฉันสามารถทำการสำรองข้อมูลโดยอัตโนมัติจากตัวควบคุมของฉันคือการใช้ SNMP ในสคริปต์ที่เรียกใช้จาก cron

snmpset -v2c -c <snmp_RW> <WLC_IP> .1.3.6.1.4.1.14179.1.2.9.1.1.0 i 1
snmpset -v2c -c <snmp_RW> <WLC_IP> .1.3.6.1.4.1.14179.1.2.9.1.2.0 a TFTP_Server_IP
snmpset -v2c -c <snmp_RW> <WLC_IP> .1.3.6.1.4.1.14179.1.2.9.1.3.0 s /<TFTP_Path>
snmpset -v2c -c <snmp_RW> <WLC_IP> .1.3.6.1.4.1.14179.1.2.9.1.4.0 s <File_name>
snmpset -v2c -c <snmp_RW> <WLC_IP> .1.3.6.1.4.1.14179.1.2.9.1.5.0 i 2
snmpset -v2c -c <snmp_RW> <WLC_IP> .1.3.6.1.4.1.14179.1.2.9.1.6.0 i 1

แน่นอนแทนที่รายการภายใน <> เพื่อให้พอดีกับการตั้งค่าของคุณ หวังว่าบางคนอาจพบว่าสิ่งนี้มีประโยชน์


ยินดีที่ได้พบ ความสามารถในการเขียน SNMP ต่ำกว่าความคาดหมายเสมอ!
RedShift

4

ขึ้นอยู่กับจำนวนอุปกรณ์ที่คุณมีคุณสามารถแฮ็คRancidเพื่อให้อุปกรณ์ทำงานได้ จากนั้นคุณสามารถตั้งค่าด้วยระบบควบคุมเวอร์ชันและมี gui เว็บที่ดีพร้อมความแตกต่างเมื่อเวลาผ่านไป

หากคุณไม่มีอุปกรณ์หลายอย่าง [ cloginส่วนหนึ่งของ Rancid] น่าจะเพียงพอในสคริปต์ที่ถูกเรียกใช้crontabทุกวัน

for device in wlc1 wlc2 wlc3 (..) wlcN; do
    clogin -c "show run; show clock" $device > ~/WLC-config-backups/$(date +%Y-%m-%d)-$device-backup.txt
done

มันเป็นพื้นฐานbash สำหรับการวนซ้ำที่สามารถขยายได้เกือบจะไม่ จำกัด


2
"show run" ไม่ใช่คำสั่งที่ถูกต้องใน WLC มันแสดง run-config และแม้กระทั่งมันจะหยุดและแจ้งให้คุณแบบทีละหน้า มันจะไม่ยอมรับ "term len 0" - หากนี่เป็น IOS ปกติฉันจะใช้สคริปต์เดียวกับที่ใช้ในการสำรองอุปกรณ์ซิสโก้อื่น ๆ ทั้งหมดของฉัน .. :(
Peter Grace

3
config paging disabledเทียบเท่ากับ IOS "term len 0" โชคดีที่พยายามจะยกเลิกshow run-configเมื่อได้รับการกลิ้ง ยังมีข้อความ "เริ่มต้นเพื่อดำเนินการต่อ"
generalnetworkerror

@generalnetworkerror, FYI config paging disabled ปิดการใช้งาน telnet และ ssh ไปยัง WLC4404s ที่เรามี
Mike Pennington

1
@MikePennington: ปิดการใช้งานเพจจิ้งทดสอบโดยไม่ล็อคใน WLC 5508 v7.5.102.0 ในเซสชัน SSH
Generalnetworkerror
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.