¿Existe una forma automatizable de hacer una copia de seguridad de la configuración desde un controlador WLC 2504?

11

Estoy buscando una forma de hacer una copia de seguridad del archivo de configuración del controlador a través de un proceso automático. He visto enlaces a la interfaz web que parece hacer una copia tftp única de la configuración a un host remoto, sin embargo, estoy buscando una manera de programar la copia.

¿Alguien sabe de una manera de automatizar las copias de seguridad de configuración para Cisco WLC?

Peter Grace
fuente
¿Has visto esta pregunta ? No directamente aplicable, pero posiblemente útil ...
Craig Constantine
1
Gracias @CraigConstantine, sin embargo, los WLC ejecutan un software personalizado que no sigue algunos de los isos comunes de IOS como "term len 0"; probablemente haya un comando oscuro en alguna parte para permitir un volcado de configuración puro, pero aún no he encontrado eso.
Peter Grace
1
... ¿qué tal este hilo de soporte de Cisco ?
Craig Constantine
2
Idealmente, se utilizaría Cisco Prime Infrastructure, pero sospecho que el OP está buscando opciones de costo cero.
generalnetworkerror

Respuestas:

8

Utilice una secuencia de comandos para iniciar sesión en el WLC y ejecute el comando de transferencia: http://www.cisco.com/en/US/docs/wireless/controller/6.0/command/reference/cli60.html#wp1327209

Puede usar esto para cargar la configuración del WLC a otro servidor a través de 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) >

Mientras que el enlace apunta a WLC 6.0, el ejemplo se ejecutó en 7.4.

some_guy_long_gone
fuente
¿El sftp solo es válido para ciertos controladores / revoluciones? Solo puedo seleccionar tftp o ftp.
Peter Grace
Este método funciona para tftp y puede automatizarse a través de algo como esperar. ¡Esto resuelve mi problema!
Peter Grace
SFTP se presenta en 7.4: Notas de la versión
some_guy_long_gone
5

Esperar puede ser un buen candidato para considerar para el trabajo.

A continuación hay una plantilla de ejemplo que he reunido que está comentada para que juegues. Iniciará sesión en un WLC, tomará la configuración en ejecución y la agregará al archivo que elija.

El nombre y la ubicación del archivo de ejemplo es /var/log/script-log/config-log.txt

Deberá modificar el nombre y la ubicación del archivo a un archivo de su elección (con los permisos adecuados), así como el nombre de usuario, la contraseña y la dirección IP de su WLC.

Finalmente, puede editar su crontab para ejecutar el script de copia de seguridad utilizando un intervalo deseado.

Ejemplo de Crontab:

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

Ejemplo de script de copia de seguridad de configuración:

#!/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
una vez
fuente
Esperaba usar esperar, pero el resultado de run-config no puede superar la configuración sin formato de "transferencia de carga" como se menciona en la respuesta de legioxi. Lo que terminé haciendo fue usar un script de espera para activar el comando de inicio de carga de transferencia en un intervalo regular.
Peter Grace
4

Sé que esta es una publicación antigua, pero la mejor manera que pude encontrar para automatizar el respaldo de mis controladores fue usar SNMP en un script ejecutado desde 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

Obviamente, reemplace los elementos dentro de <> para adaptarse a su configuración. Esperemos que alguien en algún lugar pueda encontrar esto útil.

Voluntad
fuente
Buen hallazgo ¡La capacidad de escritura de SNMP siempre se subestima!
RedShift
4

Dependiendo de cuántos dispositivos tenga, puede hackear Rancid para que funcione con ellos. Luego puede configurarlo con un sistema de control de versiones y tener una buena interfaz gráfica de usuario web con diferencias a lo largo del tiempo.

Si no tiene muchos dispositivos, la [ cloginparte de Rancid] debería ser suficiente en un script llamado crontabdiariamente, a la

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 un básico bash para el bucle que se puede extender casi hasta el infinito.

ene
fuente
2
"show run" no es un comando válido en el WLC, es show running-config e incluso entonces se detiene y le pregunta página por página. No aceptará el "término len 0": si se tratara de un IOS normal, simplemente usaría el mismo script que utilizo para hacer una copia de seguridad de todos mis otros dispositivos Cisco ... :(
Peter Grace
3
config paging disabledes equivalente a IOS "término len 0". Buena suerte tratando de abortar show run-configuna vez que se pone en marcha. Todavía hay un "Presione enter para continuar".
generalnetworkerror
@generalnetworkerror, la paginación de configuración FYI deshabilitada bloquea las sesiones telnet y ssh en los WLC4404 que tenemos
Mike Pennington
1
@ MikePennington: Paginación deshabilitada probada sin bloqueo en WLC 5508 v7.5.102.0 en sesión SSH.
generalnetworkerror