Automatizza con le API REST di NetApp Backup and Recovery
Le funzionalità di backup e ripristino NetApp disponibili tramite l'interfaccia utente Web sono disponibili anche tramite l'API REST di backup e ripristino.
In NetApp Backup and Recovery sono definite dieci categorie di endpoint:
-
backup
- gestisce le operazioni di backup delle risorse cloud e on-premise e recupera i dettagli dei dati di backup -
catalog
- gestisce la ricerca nel catalogo indicizzato dei file in base a una query (Cerca e Ripristina) -
cloud
- recupera informazioni sulle varie risorse del provider cloud dalla console NetApp -
job
- gestisce le voci dei dettagli del lavoro sul database della console NetApp -
license
- recupera la validità della licenza dei sistemi dalla console NetApp -
ransomware scan
- avvia una scansione ransomware su uno specifico file di backup -
restore
- consente di eseguire operazioni di ripristino a livello di volume, file e cartella -
sfr
- recupera i file da un file di backup per operazioni di ripristino a livello di singolo file (Sfoglia e ripristina) -
storagegrid
- recupera i dettagli su un server StorageGRID e consente di scoprire un server StorageGRID -
system
- gestisce le policy di backup e configura l'archivio oggetti di destinazione associato a un sistema
Riferimento API
La documentazione per ciascuna API di backup e ripristino NetApp è disponibile da "Automazione della console NetApp per NetApp Backup and Recovery" .
Iniziare
Per iniziare a utilizzare le API NetApp Backup and Recovery, è necessario ottenere un token utente, l'ID dell'account NetApp Console e l'ID dell'agente della console.
Quando si effettuano chiamate API, si aggiungerà il token utente nell'intestazione Authorization e l'ID agente della console nell'intestazione x-agent-id. Dovresti utilizzare l'ID account della console NetApp nelle API.
|
Se si utilizza un account di servizio, è necessario utilizzare il token di accesso al servizio anziché un token utente. Il valore per "client_id" ("Mu0V1ywgYteI6w1MbD15fKfVIUrNXGWC") è un valore fisso e non può essere modificato. In questo caso, segui le istruzioni qui: "Crea un token di accesso al servizio" . |
-
Ottieni un token utente dal sito Web NetApp NetApp Console.
Assicurati di generare il token di aggiornamento dal seguente link: https://services.cloud.netapp.com/refresh-token/. Il token di aggiornamento è una stringa alfanumerica che verrà utilizzata per generare un token utente.
curl --location --request POST 'https://netapp-cloud-account.auth0.com/oauth/token?=' \ --header 'Content-Type: application/json' \ -d '{ "grant_type": "refresh_token", "refresh_token": "JxaVHn9cGkX92aPVCkhat3zxxxxxwsC9qMl_pLHkZtsVA", "client_id": "Mu0V1ywgYteI6w1MbD15fKfVIUrNXGWC" }'
Il token utente dal sito Web della console NetApp ha una data di scadenza. La risposta API include un campo "expires_in" che indica quando scade il token. Per aggiornare il token, dovrai richiamare nuovamente questa API. -
Ottieni l'ID del tuo account NetApp Console.
GET 'https://api.bluexp.netapp.com/tenancy/account' -H 'authority: api.bluexp.netapp.com' Header: -H 'accept: application/json' -H 'accept-language: en-GB,en;q=0.9' -H 'authorization: Bearer eyJhbGciOiJSUzI1NiIsInR
Questa API restituirà una risposta simile alla seguente. È possibile recuperare l'ID dell'account analizzando l'output da [0].[ accountPublicId].
{ "accountPublicId": "account-i6vJXvZW", "accountName": "rashidn", "isSaas": true, "isGov": false, "isPrivatePreviewEnabled": false, "is3rdPartyServicesEnabled": false, "accountSerial": "96064469711530003565", "userRole": "Role-1" }
-
Ottieni x-agent-id che contiene l'ID dell'agente della console.
GET 'https://api.services.cloud.netapp.com/occm/list-occms/account-OOnAR4ZS?excludeStandalone=true&source=saas' \ Header: -H 'authority: api.services.cloud.netapp.com' \ -H 'accept: application/json' \ -H 'accept-language: en-GB,en;q=0.9' \ -H 'authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5…………
È possibile recuperare l'ID dell'agente dalla risposta analizzando l'output da occm.[0].[agent].[agentId].
Esempio utilizzando le API
L'esempio seguente mostra una chiamata API per attivare NetApp Backup and Recovery su un sistema con una nuova policy che ha etichette giornaliere, orarie e settimanali impostate e l'archiviazione dopo giorni impostata su 180 giorni, nella regione East-US-2 nel cloud di Azure. Si noti che in questo modo viene abilitato solo il backup sul sistema, ma non viene eseguito il backup dei volumi.
Vedrai che utilizziamo l'ID account della console NetApp account-DpTFcxN3
, ID agente console iZwFFeVCZjWnzGlw8RgD0QQNANZvpP7Iclients
e token utente Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5rSXlPVFUzUWpZek1E…y6nyhBjwkeMwHc4ValobjUmju2x0xUH48g
in questo comando.
curl --location --request POST 'https://api.bluexp.netapp.com/account/account-DpTFcxN3/providers/cloudmanager_cbs/api/v3/backup/working-environment/VsaWorkingEnvironment-99hPYEgk' \
--header 'x-agent-id: iZwFFeVCZjWnzGlw8RgD0QQNANZvpP7Iclients' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5rSXlPVFUzUWpZek1E…y6nyhBjwkeMwHc4ValobjUmju2x0xUH48g' \
--data-raw '{
"provider":"AZURE",
"backup-policy": {
"archive-after-days": 180,
"rule": [
{
"label": "hourly",
"retention": "2"
},
{
"label": "daily",
"retention": "30"
},
{
"label": "weekly",
"retention": "52"
}
]
},
"ip-space": "Default",
"region": "eastus2",
"azure": {
"resource-group": "rn-test-backup-rg",
"subscription": "3beb4dd0-25d4-464f-9bb0-303d7cf5c0c2"
}
}
{
"job-id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a"
}
curl --location --request GET 'https://api.bluexp.netapp.com/account/account-DpTFcxN3/providers/cloudmanager_cbs/api/v1/job/1b34b6f6-8f43-40fb-9a52-485b0dfe893a' \
--header 'x-agent-id: iZwFFeVCZjWnzGlw8RgD0QQNANZvpP7Iclients' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5rSXlPVFUzUWpZek1E…hE9ss2NubK6wZRHUdSaORI7JvcOorUhJ8srqdiUiW6MvuGIFAQIh668of2M3dLbhVDBe8BBMtsa939UGnJx7Qz6Eg'
{
"job": [
{
"id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a",
"type": "backup-working-environment",
"status": "PENDING",
"error": "",
"time": 1651852160000
}
]
}
{
"job": [
{
"id": "1b34b6f6-8f43-40fb-9a52-485b0dfe893a",
"type": "backup-working-environment",
"status": "COMPLETED",
"error": "",
"time": 1651852160000
}
]
}