Existe uma maneira automatizável de fazer backup da configuração de um controlador WLC 2504?

11

Estou procurando uma maneira de fazer backup do arquivo de configuração do controlador através de um processo automático. Eu vi links para a interface da web que parece fazer uma cópia tftp única da configuração para um host remoto, no entanto, estou procurando uma maneira de agendar a cópia.

Alguém sabe uma maneira de automatizar os backups de configuração para Cisco WLCs?

Peter Grace
fonte
Você viu esta pergunta ? Não é diretamente appicable, mas possivelmente útil ...
Craig Constantine
1
Obrigado @CraigConstantine, no entanto, os WLCs executam um software personalizado que não segue alguns dos IOS-ismos comuns como "termo len 0" - provavelmente existe um comando obscuro em algum lugar para permitir um despejo de configuração puro, mas ainda não encontrei isto.
Peter Grace
1
... que tal esse segmento de suporte da Cisco ?
Craig Constantine
2
Idealmente, o Cisco Prime Infrastructure seria usado, mas suspeito que o OP esteja procurando opções de custo zero.
generalnetworkerror

Respostas:

8

Use um script para efetuar login no WLC e execute o comando de transferência: http://www.cisco.com/en/US/docs/wireless/controller/6.0/command/reference/cli60.html#wp1327209

Você pode usar isso para fazer upload da configuração do WLC para outro servidor 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) >

Enquanto o link aponta para o WLC 6.0, o exemplo foi executado no 7.4.

some_guy_long_gone
fonte
O sftp é válido apenas para determinados controladores / rotações? Só consigo selecionar tftp ou ftp.
Peter Grace
Este método funciona para tftp e pode ser automatizado através de algo como o esperado. Isso resolve meu problema!
Peter Grace
O SFTP é introduzido no 7.4: Notas da versão
some_guy_long_gone
5

A expectativa pode ser um bom candidato a ser considerado no trabalho.

Abaixo está um modelo de exemplo que reuni que é comentado para você brincar. Ele fará logon em um WLC, agarre a configuração em execução e a anexará a um arquivo de sua escolha.

O nome e o local do arquivo de exemplo é /var/log/script-log/config-log.txt

Você precisará modificar o nome e o local do arquivo para um arquivo de sua escolha (com permissões adequadas), além do nome de usuário, senha e endereço IP do seu WLC.

Finalmente, você pode editar seu crontab para executar o script de backup usando o intervalo desejado.

Exemplo do Crontab:

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

Exemplo de script de backup de configuração:

#!/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
um tempo
fonte
Eu esperava usar o expect, mas a saída do run-config não pode superar a configuração bruta do "transfer upload", conforme mencionado na resposta do legioxi. O que acabei fazendo foi usar um script de expectativa para acionar o comando de início de transferência de transferência em intervalos regulares.
Peter Grace
4

Eu sei que essa é uma postagem antiga, mas a melhor maneira de encontrar a automação do backup dos meus controladores foi usar o SNMP em um script executado a partir do 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

Substitua obviamente os itens em <> para ajustar sua configuração. Espero que alguém em algum lugar possa achar isso útil.

Will N
fonte
Bom achado. A capacidade de gravação SNMP é sempre subestimada!
RedShift
4

Dependendo de quantos dispositivos você tiver, você pode invadir o Rancid para que ele funcione com eles. Em seguida, você pode configurá-lo com um sistema de controle de versão e ter um bom guia da web com diferenças ao longo do tempo.

Se você não possui muitos dispositivos, a [ cloginparte do Rancid] deve ser suficiente em um script chamado crontabdiariamente, à 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

É um loop bash for básico que pode ser estendido quase infinitamente.

Jan
fonte
2
"show run" não é um comando válido no WLC, é show running-config e, mesmo assim, para e solicita uma página por página. Não vai aceitar "termo len 0" - se esta era uma IOS regular, eu só iria usar o mesmo script que eu uso para fazer backup de todos os meus outros dispositivos Cisco .. :(
Pedro Graça
3
config paging disabledé equivalente ao IOS "termo len 0". Boa sorte tentando abortar, show run-configuma vez que fica rolando embora. Ainda existe uma inicial "Pressione Enter para continuar".
generalnetworkerror
@generalnetworkerror, FYI config-paginação fechaduras deficientes até sessões de telnet e SSH para os WLC4404s que temos
Mike Pennington
1
@ MikePennington: Paginação desabilitada testada sem bloqueio no WLC 5508 v7.5.102.0 na sessão SSH.
generalnetworkerror