Introducción
La versión 8.1.1 de Netbackup trae, entre otras mejoras, una nueva API para acceder a nuestra infraestructura mediante la arquitectura REST, que actualmente la más utilizada. Esta API nos proporciona una forma de interactuar con Netbackup mediante servicios web, ya sea con herramientas de terceros o con nuestros propios desarrollos.
Se introducen las siguientes API en 8.1.1:
- Autenticación: nos permite obtener un token que será necesario en el resto de las llamadas para identificar nuestras credenciales.
- Administración: para poder gestionar los trabajos de netbackup.
- Catálogo: acceso a los detalles de nuestras imágenes.
- Configuración: configuración de los clientes, políticas, credenciales, etc…
- Recuperación: recuperación de máquinas virtuales.
- Seguridad: gestión de seguridad, certificados y auditoría.
Configuración
Desde la versión 8.0 se instalan los servicios web por defecto, no es necesario hacer nada adicional en nuestro master server para poder usar los servicios web.
Para poner un ejemplo de funcionamiento de REST Api con Netbackup podemos utilizar Powershell en el caso de Windows (o el comando curl en el caso de Linux).
Lo primero será obtener el certificado de la CA para instalarla en el equipo que va a realizar las llamadas API. Para obtener este certificado, bastará con abrir un navegador y conectarnos a la dirección https://master:1556/netbackup/security/cacert, lo que hará que nos descarguemos un fichero .json con 2 certificados. El que nos interesa es el que figura después de «cacert»:
Copiaremos el certificado propiamente dicho (el que está marcado en azul) en un fichero nuevo con extensión .cer, teniendo la precaución de cambiar todas las ocurrencias de «\n» por saltos de línea, para obtener el certificado y poderlo importar:
Es necesario importar ahora el certificado dentro de «Entidades de certificación raíz de confianza»:
Una vez que tenemos el certificado podemos hacer conexiones seguras con Powershell. Lo primero será obtener un token para poder ejecutar posteriormente el resto de los comandos. Para obtener el token necesitaremos ejecutar los siguientes comandos:
$body = @{
domaintype=’NT’
domainName=’epereira-nbu811′
userName=’Administrator’
password=’PASSWORD’
}
$json = $body | ConvertTo-Json
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$response = Invoke-RestMethod ‘https://epereira-nbu811:1556/netbackup/login’ -Method Post -Body $json -ContentType ‘application/vnd.netbackup+json;version=1.0’
$token = $response.token
Tras ejecutar estos comandos, tendremos en la variable $token el token con las credenciales, que será válido durante 24 horas. A continuación ya podemos ejecutar las siguientes llamadas. Por ejemplo, las siguientes líneas nos listarán las imágenes de un cliente:
$headers = New-Object «System.Collections.Generic.Dictionary[[String],[String]]»
$headers.Add(«Accept», «application/vnd.netbackup+json;version=1.0»)
$headers.Add(«Authorization», «$token»)
$headers.Add(«Content-Type»,»application/vnd.netbackup+json;version=1.0″)
$response2 = invoke-restmethod «https://epereira-nbu811:1556/netbackup/catalog/images?filter=clientName eq ‘epereira-nbu811′» -Method Get -Headers $headers
$i=0
while ($i -lt $response2.data.length){
write-host «$($response2.data.id[$i]) $($response2.data.attributes[$i].policyName) $($response2.data.attributes[$i].backupTime)»
$i++
}
La ejecución del script nos dará el siguiente resultado:
PS C:\tmp> .\restapitest.ps1
epereira-nbu811_1519599621 nbu-catalog 2018-02-25T23:00:21Z
epereira-nbu811_1519599604 nbu-catalog 2018-02-25T23:00:04Z
Se puede observar en el url que se ha filtrado por nombre de cliente (filter=clientName eq ‘epereira-nbu811’). Para filtrar los resultados, se puede utilizar el estándar OData.
De esta forma podremos realizar las tareas de administración de Netbackup mediante llamadas a servicios web. Se ofrecen estos ejemplos a modo de introducción. Se puede consultar la lista completa en la referencia de la API de Netbackup.
Referencias