Existe-t-il un moyen automatisable de sauvegarder la configuration à partir d'un contrôleur WLC 2504?


11

Je cherche un moyen de sauvegarder le fichier de configuration du contrôleur via un processus automatique. J'ai vu des liens vers l'interface Web qui semble faire une copie tftp unique de la configuration vers un hôte distant, mais je cherche un moyen de planifier la copie.

Quelqu'un connaît-il un moyen d'automatiser les sauvegardes de configuration pour Cisco WLC?


Avez-vous vu cette question ? Pas directement applicable, mais peut-être utile ...
Craig Constantine

1
Merci @CraigConstantine, mais les WLC exécutent un logiciel personnalisé qui ne suit pas certains des IOS courants comme "term len 0" - il y a probablement une commande obscure quelque part pour permettre un pur vidage de configuration, mais je n'ai pas encore trouvé il.
Peter Grace

1
... que diriez-vous de ce fil de support Cisco ?
Craig Constantine

2
Idéalement, Cisco Prime Infrastructure serait utilisé, mais je soupçonne que l'OP recherche des options à coût nul.
generalnetworkerror

Réponses:


8

Utilisez un script pour vous connecter au WLC et exécutez la commande de transfert: http://www.cisco.com/en/US/docs/wireless/controller/6.0/command/reference/cli60.html#wp1327209

Vous pouvez l'utiliser pour télécharger la configuration du WLC vers un autre serveur via 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) >

Tandis que le lien pointe vers WLC 6.0, l'exemple a été exécuté sur 7.4.


Le sftp n'est-il valable que pour certains contrôleurs / tours? Je ne peux que sélectionner tftp ou ftp.
Peter Grace

Cette méthode fonctionne pour tftp et peut être automatisée via quelque chose comme expect. Cela résout mon problème!
Peter Grace

SFTP est introduit dans 7.4: Notes de
publication

5

Attendre peut être un bon candidat à considérer pour le poste.

Vous trouverez ci-dessous un exemple de modèle que j'ai mis en place et commenté pour que vous puissiez jouer avec. Il se connectera à un WLC, récupérera la configuration en cours et l'ajoutera à un fichier de votre choix.

L’exemple de nom et d’emplacement du fichier est /var/log/script-log/config-log.txt

Vous devrez modifier le nom et l'emplacement du fichier dans un fichier de votre choix (avec les autorisations adéquates) ainsi que le nom d'utilisateur, le mot de passe et l'adresse IP de votre WLC.

Enfin, vous pouvez modifier votre crontab pour exécuter le script de sauvegarde en utilisant un intervalle souhaité.

Exemple Crontab:

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

Exemple de script de sauvegarde de la configuration:

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

J'espérais utiliser expect mais la sortie de run-config ne peut pas dépasser la configuration brute de "transfert de transfert" comme mentionné dans la réponse de legioxi. Ce que j'ai fini par faire, c'était d'utiliser un script expect pour déclencher la commande de transfert de démarrage à intervalles réguliers.
Peter Grace

4

Je sais que c'est un ancien article, mais la meilleure façon de automatiser la sauvegarde de mes contrôleurs était d'utiliser SNMP dans un script exécuté à partir de 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

Remplacez évidemment les éléments dans <> pour l'adapter à votre configuration. J'espère que quelqu'un quelque part peut trouver cela utile.


Belle trouvaille. La capacité d'écriture SNMP est toujours sous-estimée!
RedShift

4

Selon le nombre d'appareils que vous possédez, vous pouvez pirater Rancid pour le faire fonctionner avec eux. Ensuite, vous pouvez le configurer avec un système de contrôle de version et avoir une belle interface graphique Web avec des différences dans le temps.

Si vous n'avez pas beaucoup d'appareils, la [ cloginpartie de Rancid] devrait être suffisante dans un script appelé par crontabjour, á 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

C'est une boucle bash for de base qui peut être étendue presque à l'infini.


2
"show run" n'est pas une commande valide sur le WLC, c'est show running-config et même alors il s'arrête et vous invite page par page. Il n'acceptera pas "term len 0" - s'il s'agissait d'un IOS normal, j'utiliserais simplement le même script que j'utilise pour sauvegarder tous mes autres appareils cisco .. :(
Peter Grace

3
config paging disabledest équivalent à IOS "term len 0". Bonne chance pour essayer d'avorter show run-configune fois que ça roule. Il y a toujours un premier "Appuyez sur Entrée pour continuer".
generalnetworkerror

@generalnetworkerror, la configuration de la pagination désactivée FYI verrouille les sessions telnet et ssh sur les WLC4404 que nous avons
Mike Pennington

1
@MikePennington: La pagination désactivée a été testée sans verrouillage sur WLC 5508 v7.5.102.0 en session SSH.
generalnetworkerror
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.