Automatiza la copia de seguridad y la recuperación de NetApp con las API de REST
Usa la API de REST de NetApp Backup and Recovery para automatizar las tareas de backup y restauración disponibles en la interfaz de usuario web.
NetApp Backup and Recovery define diez categorías de endpoints:
-
backup- gestiona las operaciones de backup de los recursos en la nube y locales, y recupera los detalles de los datos de backup -
catalog- gestiona búsquedas en el catálogo indexado de archivos a partir de una consulta (Search & Restore) -
cloud- recupera información sobre varios recursos de proveedores de nube desde la NetApp Console -
job- gestiona las entradas de detalles de los trabajos en la base de datos de la NetApp Console -
license: recupera el estado de la licencia del sistema desde la NetApp Console -
ransomware scan- inicia un análisis de ransomware en un archivo de respaldo específico -
restore- le permite realizar operaciones de restauración a nivel de volumen, archivo y carpeta -
sfr- recupera archivos de un archivo de respaldo para operaciones de restauración a nivel de archivo único (Explorar y restaurar) -
storagegrid- obtiene información sobre un servidor StorageGRID y te permite detectar un servidor StorageGRID -
system- gestiona las políticas de backup y configura el almacén de objetos de destino asociado a un sistema
Referencia de API
La documentación para cada API de NetApp Backup and Recovery está disponible en "Automatización de la NetApp Console para NetApp Backup and Recovery" .
Empezando
Para empezar a utilizar las API de NetApp Backup and Recovery, debes obtener un token de usuario, tu ID de cuenta de NetApp Console y el ID del agente de Console.
Cuando realices llamadas a la API, incluye el token de usuario en el encabezado Authorization y el ID del agente de la Console en el encabezado x-agent-id. Incluye el ID de la cuenta de NetApp Console en las solicitudes a la API.
|
|
Si utilizas una cuenta de servicio, utiliza el token de acceso del servicio en lugar de un token de usuario. El valor de client_id (Mu0V1ywgYteI6w1MbD15fKfVIUrNXGWC) es fijo y no se puede cambiar. En este caso, sigue las instrucciones aquí: "Crear un token de acceso al servicio".
|
-
Consigue un token de usuario en el sitio web de la NetApp Console.
Genera el token de actualización desde el siguiente enlace: https://services.cloud.netapp.com/refresh-token/. El token de actualización es una cadena alfanumérica que usas para generar un token de usuario.
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" }'El token de usuario del sitio web de NetApp Console caduca. La respuesta de la API incluye un campo expires_inque indica cuándo caduca el token. Para actualizar el token, vuelve a llamar a esta API. -
Obtenga su ID de cuenta de 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 eyJhbGciOiJSUzI1NiIsInREsta API devuelve una respuesta como la siguiente. Obtén el ID de la cuenta de [0].[accountPublicId].
{ "accountPublicId": "account-i6vJXvZW", "accountName": "rashidn", "isSaas": true, "isGov": false, "isPrivatePreviewEnabled": false, "is3rdPartyServicesEnabled": false, "accountSerial": "96064469711530003565", "userRole": "Role-1" } -
Obtén el valor del encabezado
x-agent-id, que contiene el ID del agente de 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 el ID del agente de la respuesta analizando occm.[0].[agent].[agentId].
Ejemplo de uso de las API
El siguiente ejemplo muestra una llamada a la API que activa NetApp Backup and Recovery en un sistema con una nueva política. La política tiene etiquetas diarias, horarias y semanales, y archiva después de 180 días en la región East US 2 de Azure. Esta solicitud habilita el backup en el sistema, pero no realiza backup de ningún volumen.
Verá que usamos el ID de cuenta de la NetApp Console account-DpTFcxN3 , ID del agente de la consola iZwFFeVCZjWnzGlw8RgD0QQNANZvpP7Iclients , y token de usuario Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ik5rSXlPVFUzUWpZek1E…y6nyhBjwkeMwHc4ValobjUmju2x0xUH48g en este 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
}
]
}