Существует ли автоматизированный способ резервного копирования конфигурации с контроллера WLC 2504?

11

Я ищу способ резервного копирования файла конфигурации контроллера с помощью автоматического процесса. Я видел ссылки на веб-интерфейс, который, по-видимому, делает одноразовую копию конфигурации tftp на удаленном хосте, однако я ищу способ запланировать копирование.

Кто-нибудь знает способ автоматизации резервного копирования конфигурации для WLC Cisco?

Питер Грейс
источник
Вы видели этот вопрос ? Непосредственно неприменимо, но, возможно, полезно ...
Крейг Константин
1
Спасибо @CraigConstantine, однако WLC запускают специальное программное обеспечение, которое не следует некоторым распространенным IOS-измам, таким как «term len 0» - возможно, где-то есть неясная команда, чтобы разрешить чистый дамп конфигурации, но я еще не нашел Это.
Питер Грейс
1
... как насчет этого потока поддержки Cisco ?
Крейг Константин
2
В идеале будет использоваться Cisco Prime Infrastructure, но я подозреваю, что OP ищет варианты с нулевой стоимостью.
generalnetworkerror

Ответы:

8

Используйте сценарий для входа в WLC и выполните команду передачи: http://www.cisco.com/en/US/docs/wireless/controller/6.0/command/reference/cli60.html#wp1327209

Вы можете использовать это, чтобы загрузить конфигурацию от WLC до другого сервера через 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) >

Хотя ссылка указывает на WLC 6.0, пример был запущен на 7.4.

some_guy_long_gone
источник
Sftp действителен только для определенных контроллеров / оборотов? Я могу выбрать только tftp или ftp.
Питер Грейс
Этот метод работает для tftp и может быть автоматизирован с помощью чего-то вроде ожидаемого. Это решает мою проблему!
Питер Грейс
SFTP представлен в 7.4: Замечания к выпуску
some_guy_long_gone
5

Ожидайте, может быть хорошим кандидатом для рассмотрения на работу.

Ниже приведен пример шаблона, который я собрал и закомментированный для вас, чтобы вы могли поиграть. Он войдет в WLC, получит текущую конфигурацию и добавит ее в файл по вашему выбору.

Пример имени файла и его расположение /var/log/script-log/config-log.txt

Вам нужно будет изменить имя файла и местоположение на файл по вашему выбору (с соответствующими разрешениями), а также имя пользователя, пароль и IP-адрес вашего WLC.

Наконец, вы можете отредактировать ваш crontab для выполнения скрипта резервного копирования, используя желаемый интервал.

Пример Crontab:

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

Пример скрипта резервного копирования конфигурации:

#!/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
один раз
источник
Я надеялся использовать ожидаемый, но вывод из run-config не может превысить необработанный конфиг «передачи загрузки», как упомянуто в ответе legioxi. В итоге я использовал ожидаемый сценарий для регулярного запуска команды загрузки передачи.
Питер Грейс
4

Я знаю, что это старый пост, но лучший способ автоматизировать резервное копирование с моих контроллеров - это использовать SNMP в скрипте, запущенном из 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

Очевидно, замените элементы в <> в соответствии с вашими настройками. Надеюсь, кто-то где-то может найти это полезным.

Будет N
источник
Хорошая находка. Возможность записи SNMP всегда недооценивается!
RedShift
4

В зависимости от того, сколько у вас устройств, вы можете взломать Rancid, чтобы заставить его работать с ними. Затем вы можете настроить его с помощью системы управления версиями и иметь хороший веб-интерфейс с различиями по времени.

Если у вас мало устройств, [ cloginчасть Rancid] должна быть достаточной в скрипте crontab, который вызывается ежедневно, а ля

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

Это базовый цикл bash for, который можно расширять почти бесконечно.

январь
источник
2
«show run» не является допустимой командой на WLC, это show running-config, и даже тогда она останавливается и запрашивает вас постранично. Это не примет «термин len 0» - если бы это был обычный IOS, я бы просто использовал тот же сценарий, который я использую для резервного копирования всех моих других устройств cisco .. :(
Peter Grace
3
config paging disabledэквивалентно IOS "термин len 0". Удачи, пытающейся прервать, как show run-configтолько это катится все же Еще есть начальное «Нажмите ввод, чтобы продолжить».
generalnetworkerror
@generalnetworkerror, отключение подкачки конфигурации FYI блокирует сеансы telnet и ssh для WLC4404, которые у нас есть
Майк Пеннингтон,
1
@MikePennington: Пейджинг отключен, проверен без блокировки на WLC 5508 v7.5.102.0 в сеансе SSH.
generalnetworkerror