Esiste un modo automatizzabile per eseguire il backup della configurazione da un controller WLC 2504?


11

Sto cercando un modo per eseguire il backup del file di configurazione del controller tramite un processo automatico. Ho visto collegamenti all'interfaccia web che sembra eseguire una copia tftp una tantum della configurazione su un host remoto, tuttavia sto cercando un modo per pianificare la copia.

Qualcuno conosce un modo per automatizzare i backup di configurazione per i WLC Cisco?


Hai visto questa domanda ? Non direttamente applicabile, ma forse utile ...
Craig Constantine,

1
Grazie @CraigConstantine, tuttavia i WLC eseguono un software personalizzato che non segue alcuni dei più comuni isos IOS come "termine len 0" - probabilmente c'è un comando oscuro da qualche parte per consentire un dump di configurazione puro, ma devo ancora trovare esso.
Peter Grace,

1
... che ne dici di questo thread di supporto Cisco ?
Craig Constantine,

2
Idealmente, Cisco Prime Infrastructure verrebbe utilizzata, ma sospetto che l'OP stia cercando opzioni a costo zero.
generalnetworkerror,

Risposte:


8

Utilizzare uno script per accedere al WLC ed eseguire il comando transfer: http://www.cisco.com/en/US/docs/wireless/controller/6.0/command/reference/cli60.html#wp1327209

Puoi usarlo per caricare la configurazione dal WLC su un altro server tramite 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) >

Mentre il collegamento punta a WLC 6.0, l'esempio è stato eseguito su 7.4.


Sftp è valido solo per determinati controller / rev? Sono in grado di selezionare solo tftp o ftp.
Peter Grace,

Questo metodo funziona per tftp e può essere automatizzato tramite qualcosa di simile a prevede. Questo risolve il mio problema!
Peter Grace,

SFTP è stato introdotto in 7.4: Note di rilascio
some_guy_long_gone il

5

Aspettarsi può essere un buon candidato da considerare per il lavoro.

Di seguito è riportato un modello di esempio che ho creato per commentare. Accederà a un WLC, afferrerà la configurazione in esecuzione e la aggiungerà a un file a scelta.

Il nome e il percorso del file di esempio sono /var/log/script-log/config-log.txt

Dovrai modificare il nome e il percorso del file in un file a tua scelta (con autorizzazioni adeguate), nonché nome utente, password e indirizzo IP del tuo WLC.

Finalmente puoi modificare il tuo crontab per eseguire lo script di backup usando l'intervallo desiderato.

Esempio di Crontab:

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

Esempio di script di backup della configurazione:

#!/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

Speravo di usare aspettarsi, ma l'output di run-config non può superare la configurazione grezza di "upload upload" come menzionato nella risposta di legioxi. Quello che ho finito è stato usare uno script di attesa per attivare il comando di avvio del caricamento del trasferimento a intervalli regolari.
Peter Grace,

4

So che questo è un vecchio post, ma il modo migliore che ho trovato per automatizzare il backup dai miei controller era usare SNMP in uno script eseguito da 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

Ovviamente sostituisci gli elementi in <> per adattarli alla tua configurazione. Spero che qualcuno da qualche parte possa trovare utile questo.


Bella scoperta. La capacità di scrittura SNMP è sempre sottovalutata!
RedShift

4

A seconda di quanti dispositivi hai, puoi hackerare Rancid per farlo funzionare con loro. Quindi puoi configurarlo con un sistema di controllo della versione e avere una bella interfaccia grafica web con differenze nel tempo.

Se non hai molti dispositivi, la [ cloginparte di Rancid] dovrebbe essere sufficiente in uno script chiamato dal crontabquotidiano, come

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

Si tratta di una base bash per il ciclo che può essere estesa quasi all'infinito.


2
"show run" non è un comando valido sul WLC, è show running-config e anche in questo caso si interrompe e ti chiede pagina per pagina. Non accetterà "term len 0" - se questo fosse un normale IOS, utilizzerei semplicemente lo stesso script che uso per eseguire il backup di tutti gli altri miei dispositivi Cisco. :(
Peter Grace,

3
config paging disabledè equivalente a IOS "termine len 0". Buona fortuna nel tentativo di interrompere show run-configuna volta che si avvia. C'è ancora un iniziale "Premi Invio per continuare".
generalnetworkerror

@generalnetworkerror, il paging di configurazione FYI disabilitato blocca le sessioni telnet e ssh sui WLC4404 che abbiamo
Mike Pennington,

1
@MikePennington: il paging disabilitato è stato testato senza blocco su WLC 5508 v7.5.102.0 nella sessione SSH.
generalnetworkerror,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.