Automatizza NetApp Backup and Recovery con le API REST
Usa la NetApp Backup and Recovery REST API per automatizzare le attività di backup e ripristino disponibili nell'interfaccia utente web.
NetApp Backup e ripristino definisce dieci categorie di endpoint:
-
backup- gestisce le operazioni di backup per le risorse cloud e on-premises e recupera i dettagli dei dati di backup -
catalog- Gestisce le ricerche di file nel catalogo indicizzato in base a una query (Ricerca e ripristino) -
cloud- recupera informazioni sulle varie risorse del provider cloud dalla NetApp Console -
job- gestisce le voci dei dettagli del lavoro nel database NetApp Console -
license- recupera lo stato della licenza di sistema dalla NetApp Console -
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 ti consente di scoprire un server StorageGRID -
system- gestisce le policy di backup e configura la destinazione archivio di oggetti associata a un sistema
Riferimento API
La documentazione per ciascuna API NetApp Backup and Recovery è disponibile da "Automazione NetApp Console per NetApp Backup and Recovery" .
Iniziare
Per iniziare a utilizzare le API di NetApp Backup and Recovery, ottieni un token utente, il tuo ID account NetApp Console e l'ID dell'agente Console.
Quando effettui chiamate API, includi il token utente nell'intestazione Authorization e l'ID agente della Console nell'intestazione x-agent-id. Includi l'ID account della NetApp Console nelle richieste API.
|
|
Se usi un account di servizio, usa il token di accesso al servizio invece di un token utente. Il valore per client_id (Mu0V1ywgYteI6w1MbD15fKfVIUrNXGWC) è 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 della NetApp Console.
Genera il refresh token dal seguente link: https://services.cloud.netapp.com/refresh-token/. Il refresh token è una stringa alfanumerica che utilizzi 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 NetApp Console scade. La risposta dell'API include un campo expires_inche indica quando il token scade. Per aggiornare il token, richiama di nuovo 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 eyJhbGciOiJSUzI1NiIsInRQuesta API restituisce una risposta simile alla seguente. Recupera l'ID dell'account da [0].[accountPublicId].
{ "accountPublicId": "account-i6vJXvZW", "accountName": "rashidn", "isSaas": true, "isGov": false, "isPrivatePreviewEnabled": false, "is3rdPartyServicesEnabled": false, "accountSerial": "96064469711530003565", "userRole": "Role-1" } -
Ottieni il `x-agent-id`valore dell'intestazione, 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…………Recupera l'ID dell'agente dalla risposta analizzando occm.[0].[agent].[agentId].
Esempio utilizzando le API
L'esempio seguente mostra una chiamata API che attiva NetApp Backup and Recovery su un sistema con una nuova policy. La policy prevede etichette giornaliere, orarie e settimanali e archivia dopo 180 giorni nella regione East US 2 di Azure. Questa richiesta abilita il backup sul sistema, ma non esegue il backup di alcun volume.
Vedrai che utilizziamo l'ID account NetApp Console 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
}
]
}