Sommario

Introduzione

Problema

Panoramica sulla chiamata API

Utilizzo del ricciolo nello script

Introduzione

In questo documento viene descritto come utilizzare alcune delle chiamate API disponibili in vManage e come adattarle per eseguirle utilizzando uno script.

Problema

Le informazioni che è possibile richiedere da vManage non sono sempre facili da raccogliere se la sovrapposizione contiene centinaia o migliaia di router Cisco Edge.

Esempio:

Il modo più semplice per ottenere la configurazione corrente di un singolo Cisco Edge Router è selezionare Configurazione > Dispositivi > Elenco Wan Edge > fare clic sui puntini di sospensione (...) e Configurazione in esecuzione. Sarà quindi necessario selezionare e copiare tutta la configurazione e salvarla in un altro file in formato .txt. Tuttavia, il problema si verifica quando si desidera ottenere la configurazione di più router Cisco Edge, che rende questa attività impegnativa e dispendiosa in termini di tempo.

Panoramica sulla chiamata API

Questa procedura è un esempio di come è possibile utilizzare una semplice chiamata API per ottenere tutte le informazioni necessarie.

Passaggio 1.

Accedere a vManage normalmente utilizzando l'URL o l'indirizzo IP.

Passaggio 2.

Aprire una nuova scheda del browser, quindi copiare e incollare l'URL di vManage e aggiungere il suffisso /apidocs (https://172.18.121.103:15256/apidocs).

Passaggio 3.

Nella casella di ricerca digitare Monitoraggio - Dettagli dispositivo.

Passaggio 4.

Per ottenere la configurazione di un dispositivo, è necessario provare a eseguire la chiamata API /device/config.

Passaggio 5.

Immettere il valore System-IP di un router perimetrale Cisco ed eseguire la chiamata API.

Utilizzo del ricciolo nello script

Un'opzione migliore è quella di usare una chiamata API in uno script per generare i file di configurazione dei router perimetrali Cisco.

Passaggio 1.

Innanzitutto, nella shell o nella riga di comando CLI, creare una cartella in cui sono memorizzati tutti i file di backup.

lufrias@LUFRIAS-M-P9Q2 Desktop % mkdir Backup_cedges

lufrias@LUFRIAS-M-P9Q2 Desktop % cd Backup_cedges

lufrias@LUFRIAS-M-P9Q2 Backup_cedges % pwd

/Users/lufrias/Desktop/Backup_cedges

lufrias@LUFRIAS-M-P9Q2 Backup_cedges %

Passaggio 2.

Creare un file .txt con tutti gli indirizzi IP dei router perimetrali Cisco di cui è richiesto il backup. Elenco indirizzi IP di sistema che è possibile ottenere da vManage ed esportare un file CSV.

È necessario denominare il file System-IPs.txt e salvarlo nella stessa directory creata in precedenza (Backup_cedges).

Passaggio 3.

Verificare che il file sia stato salvato.

lufrias@LUFRIAS-M-P9Q2 Backup_cedges % ls -l

total 8

-rw-r--r--@ 1 lufrias  staff  77 Aug 27 12:20 System-IPs.txt

lufrias@LUFRIAS-M-P9Q2 Backup_cedges %

Passaggio 4.

Procedere con la creazione dello script. È possibile utilizzare vi o qualsiasi blocco note, è sufficiente fare attenzione a salvarlo con il formato .sh.

#!/bin/bash

#Define your variables

echo "Please type vManage URL in following format"

echo "https://172.18.121.103:15256 or https://vmanage.cisco.com"

read VMANAGE

echo "Please enter username to access vmanage"

read USER

echo "Password:"

read PASSWORD

#DEFINING THE API CALLS TO LOGIN AND BODY

security_url="$VMANAGE/j_security_check"

credentials="j_username=$USER&j_password=$PASSWORD"

#EXECUTE THE API CALL TO LOGIN TO THE VMANAGE.

curl --request POST --silent --insecure -c cookies.txt --url $security_url --data $credentials

#EXECUTE THE API CALL TO GET A TOKEN

TOKEN=$(curl "$VMANAGE/dataservice/client/token" -X GET -b cookies.txt -s --insecure)

arr_csv=()

while IFS= read -r line

do

arr_csv+=("$line")

curl --insecure -b cookies.txt -H "accept: text/plain" -H "X-XSRF-TOKEN: $TOKEN"  -X GET "$VMANAGE/dataservice/device/config?deviceId="$line > $line.txt

echo $line

done < System-IPs.txt

echo "Running config was collected from following System_IPs:"

index=0

for record in "${arr_csv[@]}"

do

echo "Record at index-${index} : $record"

((index++))

done

curl "$VMANAGE/logout" -b cookies.txt --silent --insecure -H "X-XSRF-TOKEN: $TOKEN"

echo "Check files, if they are empty or with message "Bad request" check user and password"

Passaggio 5.

Modificare i privilegi del file in modo che possa essere eseguito.

lufrias@LUFRIAS-M-P9Q2 Backup_cedges % ls -l

total 16

-rw-r--r--@ 1 lufrias  staff    77 Aug 27 12:20 System-IPs.txt

-rw-r--r--  1 lufrias  staff  1174 Aug 27 12:47 config_backup_script.sh

lufrias@LUFRIAS-M-P9Q2 Backup_cedges %

lufrias@LUFRIAS-M-P9Q2 Backup_cedges %

lufrias@LUFRIAS-M-P9Q2 Backup_cedges % chmod +x config_backup_script.sh

lufrias@LUFRIAS-M-P9Q2 Backup_cedges %

lufrias@LUFRIAS-M-P9Q2 Backup_cedges % ls -l

total 16

-rw-r--r--@ 1 lufrias  staff    77 Aug 27 12:20 System-IPs.txt

-rwxr-xr-x  1 lufrias  staff  1174 Aug 27 12:47 config_backup_script.sh

lufrias@LUFRIAS-M-P9Q2 Backup_cedges %

Passaggio 6.

Eseguire lo script utilizzando il comando /.config_backup_script.sh. Considerare che il completamento di questa operazione richiede del tempo a seconda della quantità di dispositivi.

lufrias@LUFRIAS-M-P9Q2 Backup_cedges % ./config_backup_script.sh

Please type vManage URL in following format

https://172.18.121.103:15256 or https://vmanage.cisco.com

https://172.18.121.103:15256

Please enter username to access vmanage

admin

Password:

qwerty1234Q

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

Dload  Upload   Total   Spent    Left  Speed

100  7238    0  7238    0     0   1133      0 --:--:--  0:00:06 --:--:--  1761

10.10.10.1

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

Dload  Upload   Total   Spent    Left  Speed

100  7218    0  7218    0     0   1799      0 --:--:--  0:00:04 --:--:--  1800

20.20.20.1

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

Dload  Upload   Total   Spent    Left  Speed

100  7225    0  7225    0     0   1978      0 --:--:--  0:00:03 --:--:--  1978

30.30.30.1

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

Dload  Upload   Total   Spent    Left  Speed

100  7225    0  7225    0     0   1491      0 --:--:--  0:00:04 --:--:--  2031

40.40.40.1

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

Dload  Upload   Total   Spent    Left  Speed

100  7225    0  7225    0     0   2717      0 --:--:--  0:00:02 --:--:--  2718

50.50.50.1

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

Dload  Upload   Total   Spent    Left  Speed

100  7225    0  7225    0     0   1610      0 --:--:--  0:00:04 --:--:--  1641

60.60.60.1

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

Dload  Upload   Total   Spent    Left  Speed

100  7225    0  7225    0     0   1668      0 --:--:--  0:00:04 --:--:--  1668

70.70.70.1

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

Dload  Upload   Total   Spent    Left  Speed

100    40    0    40    0     0    108      0 --:--:-- --:--:-- --:--:--   107

80.80.80.1

Running config was collected from following System_IPs:

Record at index-0 : 10.10.10.1

Record at index-1 : 20.20.20.1

Record at index-2 : 30.30.30.1

Record at index-3 : 40.40.40.1

Record at index-4 : 50.50.50.1

Record at index-5 : 60.60.60.1

Record at index-6 : 70.70.70.1

Record at index-7 : 80.80.80.1

Method Not AllowedCheck files, if they are empty or with message Bad request check user and password

lufrias@LUFRIAS-M-P9Q2 Backup_cedges %

Passaggio 7.

Infine, controllare i file con il comando ls -l.

lufrias@LUFRIAS-M-P9Q2 Backup_cedges % ls -l

total 152

-rw-r--r--  1 lufrias  staff  7238 Sep 11 10:06 10.10.10.1.txt

-rw-r--r--  1 lufrias  staff  7218 Sep 11 10:06 20.20.20.1.txt

-rw-r--r--  1 lufrias  staff  7225 Sep 11 10:06 30.30.30.1.txt

-rw-r--r--  1 lufrias  staff  7225 Sep 11 10:06 40.40.40.1.txt

-rw-r--r--  1 lufrias  staff  7225 Sep 11 10:06 50.50.50.1.txt

-rw-r--r--  1 lufrias  staff  7225 Sep 11 10:06 60.60.60.1.txt

-rw-r--r--  1 lufrias  staff  7225 Sep 11 10:07 70.70.70.1.txt

-rw-r--r--  1 lufrias  staff    40 Sep 11 10:07 80.80.80.1.txt

-rw-r--r--@ 1 lufrias  staff    88 Sep 10 11:48 System-IPs.txt

-rwxr-xr-x  1 lufrias  staff  1352 Sep 11 09:49 config_backup_script.sh

-rw-r--r--  1 lufrias  staff   288 Sep 11 10:06 cookies.txt

lufrias@LUFRIAS-M-P9Q2 Backup_cedges %

Controllare il file di configurazione.

lufrias@LUFRIAS-M-P9Q2 Backup_cedges % more 10.10.10.1.txt

system

system-ip             10.10.10.1

overlay-id            1

site-id               101

no transport-gateway enable

port-offset           0

control-session-pps   300

admin-tech-on-failure

sp-organization-name  CISCORTPLAB

organization-name     CISCORTPLAB

port-hop

track-transport

track-default-gateway

console-baud-rate     9600

no on-demand enable

on-demand idle-timeout 10

vbond 192.168.51.117 port 12346

Se i file sono vuoti o contengono il messaggio di errore "Richiesta non valida", verificare il nome utente e la password di autenticazione.

lufrias@LUFRIAS-M-P9Q2 Backup_cedges % more 30.30.30.1.txt

Bad Request

lufrias@LUFRIAS-M-P9Q2 Backup_cedges %

Se nel file viene visualizzato il messaggio "No device found for system IP" (Nessun dispositivo trovato per l'IP del sistema), significa che l'IP del sistema non esiste in vManage. È necessario correggere System-IPs.txt ed eliminare System-IP errato.

lufrias@LUFRIAS-M-P9Q2 Backup_cedges % more 80.80.80.1.txt

No device found for system IP 80.80.80.1

lufrias@LUFRIAS-M-P9Q2 Backup_cedges %