Czy istnieje automatyczny sposób na wykonanie kopii zapasowej konfiguracji ze sterownika WLC 2504?


11

Szukam sposobu na wykonanie kopii zapasowej pliku konfiguracji kontrolera za pomocą automatycznego procesu. Widziałem linki do interfejsu internetowego, który wydaje się wykonywać jednorazową kopię konfiguracji ftpp na zdalnym hoście, jednak szukam sposobu na zaplanowanie kopiowania.

Czy ktoś wie, jak zautomatyzować tworzenie kopii zapasowych konfiguracji dla WLC Cisco?


Widziałeś to pytanie ? Nie dotyczy bezpośrednio, ale może jest pomocny ...
Craig Constantine

1
Dzięki @CraigConstantine, jednak WLC uruchamiają niestandardowe oprogramowanie, które nie podąża za niektórymi typowymi IOS-ami, takimi jak „term len 0” - prawdopodobnie jest jakieś niejasne polecenie, które pozwala na czysty zrzut konfiguracji, ale jeszcze nie znalazłem to.
Peter Grace,

1
... a co z tym wątkiem wsparcia Cisco ?
Craig Constantine

2
Najlepiej byłoby użyć infrastruktury Cisco Prime, ale podejrzewam, że OP szuka opcji o zerowym koszcie.
generalnetworkerror

Odpowiedzi:


8

Użyj skryptu, aby zalogować się do WLC i uruchomić polecenie transferu: http://www.cisco.com/en/US/docs/wireless/controller/6.0/command/reference/cli60.html#wp1327209

Możesz użyć tego do przesłania konfiguracji z WLC na inny serwer przez 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) >

Chociaż link wskazuje na WLC 6.0, przykład uruchomiono w wersji 7.4.


Czy sftp jest ważny tylko dla niektórych kontrolerów / obrotów? Jestem w stanie wybrać tylko tftp lub ftp.
Peter Grace,

Ta metoda działa dla tftp i może być zautomatyzowana za pomocą czegoś takiego jak expect. To rozwiązuje mój problem!
Peter Grace,

SFTP jest wprowadzony w 7.4: Informacje o wydaniu
some_guy_long_gone 18.09.2013

5

Oczekiwany może być dobrym kandydatem do rozważenia na tym stanowisku.

Poniżej znajduje się przykładowy szablon, który skomentowałem, abyś mógł z nim grać. Loguje się do WLC, pobiera bieżącą konfigurację i dołącza do wybranego pliku.

Przykładowa nazwa i lokalizacja pliku to /var/log/script-log/config-log.txt

Musisz zmodyfikować nazwę i lokalizację pliku do wybranego pliku (z odpowiednimi uprawnieniami), a także nazwę użytkownika, hasło i adres IP Twojej WLC.

Na koniec możesz edytować swój plik crontab, aby wykonać skrypt kopii zapasowej w żądanym odstępie czasu.

Przykład Crontab:

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

Przykład skryptu konfiguracji kopii zapasowej:

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

Miałem nadzieję, że użyję opcji expect, ale dane wyjściowe z run-config nie są w stanie prześcignąć surowej konfiguracji „transfer upload”, jak wspomniano w odpowiedzi legioxi. Skończyło się na tym, że użyłem skryptu expect, aby w regularnych odstępach czasu uruchamiał polecenie rozpoczęcia przesyłania.
Peter Grace,

4

Wiem, że to stary post, ale najlepszym sposobem na zautomatyzowanie tworzenia kopii zapasowych od moich kontrolerów było użycie SNMP w skrypcie uruchamianym z crona.

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

Oczywiście zamień elementy w <>, aby pasowały do ​​twojej konfiguracji. Mam nadzieję, że ktoś gdzieś może uznać to za pomocne.


Niezłe znalezisko. Zdolność zapisu SNMP jest zawsze niedoceniana!
RedShift,

4

W zależności od tego, ile posiadasz urządzeń, możesz zhakować Rancid , aby działał z nimi. Następnie możesz skonfigurować go z systemem kontroli wersji i mieć ładne GUI z różnicami w czasie.

Jeśli nie masz wielu urządzeń, [ cloginczęść Rancid] powinna wystarczyć w skrypcie wywoływanym z crontabcodziennie, 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

Jest to podstawowa pętla bash for , którą można rozszerzyć niemal nieskończenie.


2
„show run” nie jest prawidłowym poleceniem na WLC, pokazuje show-config, a nawet wtedy zatrzymuje się i wyświetla monit po stronie. Nie akceptuje „terminu len 0” - jeśli byłby to zwykły system iOS, użyłbym tego samego skryptu, którego używam do wykonania kopii zapasowej wszystkich innych urządzeń Cisco .. :(
Peter Grace

3
config paging disabledjest równoważne z IOS „termin len 0”. Powodzenia w próbie przerwania, show run-configgdy tylko się potoczy. Nadal występuje wstępne „Naciśnij klawisz Enter, aby kontynuować”.
generalnetworkerror,

@generalnetworkerror, stronicowanie konfiguracji FYI wyłączone blokuje sesje telnet i ssh na WLC4404, które mamy
Mike Pennington

1
@MikePennington: Testowanie stronicowania wyłączone bez blokady na WLC 5508 v7.5.102.0 w sesji SSH.
generalnetworkerror,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.