Iniciando con Powershell toolkit de NetApp
La PowerShell Toolkit de NetApp unifica todos los módulos de Powershell en un único paquete. Actualmente soporta las cabinas de almacenamiento ONTAP en todas sus variantes (FAS, AFF, Cloud ONTAP) y cabinas E-Series.
Tras instalar el paquete con un ‘siguiente, siguiente, siguiente’ y abrir una nueva consola de Powershell, es interesante ejecutar el siguiente comando que abrirá un archivo HTML con toda la información de la integración con NetApp, detalles de cada uno de los cmdlets, y ejemplos de uso.
PS C:\> show-nchelp
A continuación se muestra un primer script de ejemplo tipo Hello World en el que se listan los volúmenes de una cabina ONTAP que no son root y que no tienen la funcionalidad de auto crecimiento habilitado.
Código de ejemplo
Primero se ha creado un simple script que pregunta por la contraseña de una cabina y la almacena en un fichero de texto de forma cifrada para evitar tener contraseñas en claro.
# script name: create_securestring_file.ps1
$clusterName = Read-Host "What is the cluster's name?"
$password = Read-Host 'What is your password?' -AsSecureString
$PathFile = ".\$clusterName.txt"
$password | convertfrom-securestring | out-file $PathFile
El siguiente script se conecta a una cabina ONTAP y lista los volúmenes que no sean root y que no tengan habilitado el autosize.
# script name: check_nonroot_vols_without_autosize.ps1
$clusterName = "cluster1"
$username = "admin"
$PathFile = ".\$clusterName.txt"
# Get the secured password from the cluster
$Secstr = cat $PathFile | convertto-securestring
$Cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $Secstr
# Connect to cluster
Write-Host "Connecting to cluster $destinationClusterName ... " -NoNewLine
$conn = Connect-NcController -Name $clusterName -HTTPS -Credential $Cred
if ($conn -eq $null)
{
Write-Host "Connection to host $destinationClusterName failed!" -foregroundcolor "red"
break
}
else {
Write-Host "Done." -foregroundcolor "green"
}
Get-NcVol | ?{ ($_.VolumeStateAttributes.IsVserverRoot -eq $false) -and ($_.VolumeAutosizeAttributes.IsEnabled -eq $false) }
Ejecución del ejemplo
Por último se muestra la ejecución de los dos ejemplos de código mostrado anteriormente.
PS C:\> .\create_secure_password.ps1
What is the clusters name?: cluster1
What is your password?: ********
PS C:\>
PS C:\> .\check_nonroot_vols_without_autosize.ps1
Connecting to cluster ... Done.
Name State TotalSize Used Available Dedupe Aggregate Vserver
---- ----- --------- ---- --------- ------ --------- -------
myvol2 online 1.0 GB 5% 972.3 MB False aggr2_cluster1_01 svm1
svm1_vol01 online 1.0 GB 5% 971.4 MB False aggr1_cluster1_01 svm1