目錄

簡介

問題

API呼叫概述

在指令碼中使用Curl

簡介

本文檔介紹如何使用vManage中可用的某些API呼叫，以及如何調整它以使用指令碼運行它。

問題

如果重疊包含數百或數千台思科邊緣路由器，則從vManage需要的資訊並不總是容易收集。

範例：

要獲取單個Cisco Edge路由器的運行配置，最簡單的方法是導航到Configuration > Devices > Wan Edge List，然後點選省略號(...)和Running Configuration。然後，您必須選擇並複製所有配置，然後將其儲存在另一個檔案中，如.txt格式。但是，如果您想獲得多個思科邊緣路由器的配置，則會出現問題，使得此任務非常耗時且非常耗時。

API呼叫概述

以下過程是一個示例，說明如何使用簡單的API呼叫獲取所需的所有資訊。

步驟 1.

使用URL或IP地址正常登入到vManage。

步驟 2.

開啟新的頁籤瀏覽器，然後複製並貼上vManage的URL，並新增字尾/apidocs(https://172.18.121.103:15256/apidocs)。

步驟 3.

在搜尋框中，鍵入Monitoring - Device Details。

步驟 4.

為了獲得一個裝置的配置，您必須嘗試/device/config API呼叫。

步驟 5.

輸入一個Cisco Edge路由器的System-IP，然後運行API呼叫。

在指令碼中使用Curl

更好的選擇是使用指令碼中的API呼叫生成Cisco Edge路由器的配置檔案。

步驟 1.

首先，在shell或CLI命令列中，建立儲存所有備份檔案的資料夾。

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 %

步驟 2.

使用需要備份的思科邊緣路由器的所有系統IP地址建立一個.txt檔案。您可以從vManage和匯出CSV檔案獲得的系統IP地址清單。

需要將檔案命名為System-IPs.txt，並將其儲存在先前建立的同一目錄中(Backup_cedges)。

步驟 3.

確認檔案已儲存。

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 %

步驟 4.

繼續建立指令碼。可以使用vi或任何記事本，但必須小心使用.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"

步驟 5.

更改檔案的許可權，使其可以運行。

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 %

步驟 6.

使用/.config_backup_script.sh命令運行指令碼。請考慮完成此操作需要一些時間，具體取決於裝置的數量。

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 %

步驟 7.

最後，使用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 %

檢查組態檔。

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

如果檔案為空或顯示錯誤消息「Bad request」，請檢查身份驗證用戶名和密碼。

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

Bad Request

lufrias@LUFRIAS-M-P9Q2 Backup_cedges %

如果檔案顯示「No device found for system IP」（未找到系統IP的裝置），則表示vManage中不存在系統IP。您必須更正System-IPs.txt並刪除錯誤的System-IP。

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 %