Gibt es eine automatisierbare Möglichkeit, die Konfiguration von einem WLC 2504-Controller zu sichern?

11

Ich suche nach einer Möglichkeit, die Controller-Konfigurationsdatei über einen automatischen Prozess zu sichern. Ich habe Links zur Weboberfläche gesehen, die anscheinend eine einmalige TFTP-Kopie der Konfiguration auf einem Remote-Host erstellt. Ich suche jedoch nach einer Möglichkeit, die Kopie zu planen.

Kennt jemand eine Möglichkeit, Konfigurationssicherungen für Cisco WLCs zu automatisieren?

Peter Grace
quelle
Hast du diese Frage gesehen ? Nicht direkt anwendbar, aber möglicherweise hilfreich ...
Craig Constantine
1
Dank @CraigConstantine führen die WLCs jedoch eine benutzerdefinierte Software aus, die einigen der gängigen IOS-Ismen wie "term len 0" nicht folgt - es gibt wahrscheinlich irgendwo einen undurchsichtigen Befehl, um einen reinen Konfigurationsspeicherauszug zuzulassen, aber ich muss ihn noch finden es.
Peter Grace
1
... wie wäre es mit diesem Cisco-Support- Thread?
Craig Constantine
2
Idealerweise würde Cisco Prime Infrastructure verwendet, aber ich vermute, dass das OP nach kostengünstigen Optionen sucht.
Generalnetworkerror

Antworten:

8

Verwenden Sie ein Skript, um sich beim WLC anzumelden und den Übertragungsbefehl auszuführen: http://www.cisco.com/en/US/docs/wireless/controller/6.0/command/reference/cli60.html#wp1327209

Hiermit können Sie die Konfiguration vom TFLC über TFTP / SFTP / FTP auf einen anderen Server hochladen.

(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) >

Während der Link auf WLC 6.0 verweist, wurde das Beispiel auf 7.4 ausgeführt.

some_guy_long_gone
quelle
Ist das SFTP nur für bestimmte Controller / Umdrehungen gültig? Ich kann nur tftp oder ftp auswählen.
Peter Grace
Diese Methode funktioniert für TFTP und kann über etwas wie erwartet automatisiert werden. Das löst mein Problem!
Peter Grace
: SFTP wird in 7.4 eingeführt Release Notes
some_guy_long_gone
5

Erwarten Sie, dass ein guter Kandidat für den Job in Betracht gezogen werden kann.

Unten ist eine Beispielvorlage, die ich zusammengestellt habe und die für Sie zum Spielen auskommentiert ist. Es wird sich bei einem WLC anmelden, die laufende Konfiguration abrufen und an eine Datei Ihrer Wahl anhängen.

Der Name und Speicherort der Beispieldatei lautet /var/log/script-log/config-log.txt

Sie müssen den Dateinamen und den Speicherort in eine Datei Ihrer Wahl (mit entsprechenden Berechtigungen) sowie den Benutzernamen, das Kennwort und die IP-Adresse Ihres WLC ändern.

Schließlich können Sie Ihre Crontab bearbeiten, um das Sicherungsskript in einem gewünschten Intervall auszuführen.

Crontab Beispiel:

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

Beispiel für ein Konfigurationssicherungsskript:

#!/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
einmal
quelle
Ich hatte gehofft, Expect verwenden zu können, aber die Ausgabe von run-config kann die Rohkonfiguration von "transfer upload" nicht übertreffen, wie in der Antwort von legioxi erwähnt. Am Ende habe ich ein Expect-Skript verwendet, um den Befehl zum Starten des Übertragungs-Uploads in regelmäßigen Abständen auszulösen.
Peter Grace
4

Ich weiß, dass dies ein alter Beitrag ist, aber der beste Weg, die Sicherung von meinen Controllern zu automatisieren, war die Verwendung von SNMP in einem Skript, das von cron ausgeführt wird.

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

Ersetzen Sie natürlich die Elemente in <>, um sie an Ihr Setup anzupassen. Hoffentlich findet jemand irgendwo dies hilfreich.

Will N.
quelle
Schöner Fund. Die SNMP-Schreibfähigkeit wird immer unterschätzt!
RedShift
4

Abhängig davon, wie viele Geräte Sie haben, können Sie Rancid hacken , damit es mit ihnen funktioniert. Dann können Sie es mit einem Versionskontrollsystem einrichten und eine schöne Web-GUI mit Unterschieden im Laufe der Zeit haben.

Wenn Sie nicht viele Geräte haben, sollte der [ cloginTeil von Rancid] in einem Skript ausreichen, das von crontabtäglich á la aufgerufen wird

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

Es ist eine grundlegende bash for- Schleife, die nahezu unendlich erweitert werden kann.

Jan.
quelle
2
"show run" ist kein gültiger Befehl im WLC, sondern show running-config. Selbst dann stoppt es und fordert Sie Seite für Seite auf. Es akzeptiert nicht "term len 0" - wenn dies ein reguläres IOS wäre, würde ich nur das gleiche Skript verwenden, das ich zum
Peter Grace
3
config paging disabledentspricht IOS "term len 0". Viel Glück beim Versuch abzubrechen, show run-configsobald es ins Rollen kommt. Es gibt immer noch ein erstes "Drücken Sie die Eingabetaste, um fortzufahren."
Generalnetworkerror
@generalnetworkerror, FYI Config Paging deaktiviert sperrt Telnet- und SSH-Sitzungen zu den WLC4404s, die wir haben
Mike Pennington
1
@MikePennington: Paging deaktiviert ohne Sperrung auf WLC 5508 v7.5.102.0 in SSH-Sitzung getestet.
Generalnetworkerror