Isilon : Utilisation de PowerShell avec l’API de plateforme - Bases (en anglais)
Summary: Cet article explique comment se connecter à un cluster à l’aide de PowerShell et de PAPI (API de plate-forme).
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
Symptoms
s/o
Cause
s/o
Resolution
Remarque : Cette rubrique fait partie du SDK Isilon - Isilon Info Hub.
Introduction
Avec l’introduction de la nouvelle API de plate-forme RESTful (PAPI), il existe désormais un moyen beaucoup plus facile et plus élégant d’automatiser et de gérer les clusters Isilon à l’aide de PowerShell. Cet article explique les bases de la connexion à un cluster à l’aide de PowerShell et de PAPI.
Il est vivement recommandé de télécharger et de lire le guide de référence PAPI pour votre version de OneFS ici.
Étant donné que papi permet d’accéder au cluster via REST, vous pouvez manipuler les ressources à l’aide de méthodes HTTP telles que GET, POST, PUT et DELETE. Les représentations des objets et des collections sont échangées sous forme de documents au format JSON. Pour utiliser le PAPI, vous devez activer HTTP sur le cluster en vous connectant à l’interface utilisateur Web et en accédant à : Protocoles>Paramètres> HTTP Activez HTTP.
Si vous ne disposez pas de PowerShell v3 pour télécharger et installer .NET Framework version 4, cliquez ici.
Ensuite, téléchargez et installez le framework de gestion v3 approprié ici.
# Accept input parameters
Param([String]$isilonip,[String]$username,[String]$password)
Pour accéder aux ressources du cluster, nous utiliserons « Invoke-RestMethod » avec les paramètres appropriés. Cette méthode prend plusieurs paramètres tels qu’une chaîne URI, un corps (utilisé pour un POST), des en-têtes, etc. Le code suivant crée les informations d’en-tête dont nous avons besoin et l’URL de base pour l’accès :
# Encoder l’en-tête d’autorisation de base et créer baseurl
$EncodedAuthorization = [System.Text.Encoding] ::UTF8. GetBytes ($username + « : » + $password)
$EncodedPassword = [System.Convert] ::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"
$baseurl = 'https://' + $isilonip + » :8080 »
Dans cet exemple, nous accédons aux quotas. Ajoutez-le à l’URL de base pour créer l’URI final que nous transmettrons à « Invoke-RestMethod ». Si vous consultez la documentation PAPI, vous verrez qu’une collection de ressources est accessible au format « /platform/1/namespace/collection-name » (/platform/1/<namespace>/<collection-name>). Si, par exemple, nous voulons obtenir la collection d’objets représentant tous les quotas définis sur le cluster, nous devons obtenir « /platform/1/quota/quotas ».
$resourceurl = « /platform/1/quota/quotas »
$uri = $baseurl + $resourceurl
À présent, nous appelons Invoke-RestMethod, puis nous accédons à l’objet renvoyé qui contient la collecte de quotas :
Voici un exemple de sortie de script :
il existe une liste de tous les quotas et de leurs propriétés définies sur le cluster. À l’aide de cette méthode, PSv3 convertit automatiquement la sortie JSON en objets.
Corps du script :
Introduction
Avec l’introduction de la nouvelle API de plate-forme RESTful (PAPI), il existe désormais un moyen beaucoup plus facile et plus élégant d’automatiser et de gérer les clusters Isilon à l’aide de PowerShell. Cet article explique les bases de la connexion à un cluster à l’aide de PowerShell et de PAPI.
Il est vivement recommandé de télécharger et de lire le guide de référence PAPI pour votre version de OneFS ici.
Étant donné que papi permet d’accéder au cluster via REST, vous pouvez manipuler les ressources à l’aide de méthodes HTTP telles que GET, POST, PUT et DELETE. Les représentations des objets et des collections sont échangées sous forme de documents au format JSON. Pour utiliser le PAPI, vous devez activer HTTP sur le cluster en vous connectant à l’interface utilisateur Web et en accédant à : Protocoles>Paramètres> HTTP Activez HTTP.
PowerShell v3
PowerShell v3 dispose de méthodes intégrées qui simplifient l’accès RESTful. Vous pouvez vérifier votre version powershell actuelle en examinant la valeur $PSVersionTable :
Si vous ne disposez pas de PowerShell v3 pour télécharger et installer .NET Framework version 4, cliquez ici.
Ensuite, téléchargez et installez le framework de gestion v3 approprié ici.
Connexion au cluster
Le script ci-dessous accepte les paramètres d’une adresse IP ou d’un nom d’hôte Isilon, d’un nom d’utilisateur et d’un mot de passe :# Accept input parameters
Param([String]$isilonip,[String]$username,[String]$password)
Pour accéder aux ressources du cluster, nous utiliserons « Invoke-RestMethod » avec les paramètres appropriés. Cette méthode prend plusieurs paramètres tels qu’une chaîne URI, un corps (utilisé pour un POST), des en-têtes, etc. Le code suivant crée les informations d’en-tête dont nous avons besoin et l’URL de base pour l’accès :
# Encoder l’en-tête d’autorisation de base et créer baseurl
$EncodedAuthorization = [System.Text.Encoding] ::UTF8. GetBytes ($username + « : » + $password)
$EncodedPassword = [System.Convert] ::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"
$baseurl = 'https://' + $isilonip + » :8080 »
Dans cet exemple, nous accédons aux quotas. Ajoutez-le à l’URL de base pour créer l’URI final que nous transmettrons à « Invoke-RestMethod ». Si vous consultez la documentation PAPI, vous verrez qu’une collection de ressources est accessible au format « /platform/1/namespace/collection-name » (/platform/1/<namespace>/<collection-name>). Si, par exemple, nous voulons obtenir la collection d’objets représentant tous les quotas définis sur le cluster, nous devons obtenir « /platform/1/quota/quotas ».
$resourceurl = « /platform/1/quota/quotas »
$uri = $baseurl + $resourceurl
À présent, nous appelons Invoke-RestMethod, puis nous accédons à l’objet renvoyé qui contient la collecte de quotas :
$ISIObject = Invoke-RestMethod -Uri $url -Headers $headers -Method Get
$ISIObject.quotas
$ISIObject.quotas
Voici un exemple de sortie de script :
il existe une liste de tous les quotas et de leurs propriétés définies sur le cluster. À l’aide de cette méthode, PSv3 convertit automatiquement la sortie JSON en objets.
Corps du script :
#################
Créé : 18/09/2013 par Jeremy Smith, EMC NAS Specialist Central Division
# Modifié :
#
#
# ps_isilon_get_quotas_via_papi.ps1 - Obtenez tous les quotas sur un cluster
Isilon# Remarque : Vous devez utiliser OneFS 7.0.2 ou une version ultérieure pour tirer parti de PAPI et l’accès HTTP doit être activé sur le cluster.
N°
# PARAMETERS
#
# -isilonip = node IP
# -username
# -password
# -path = /ifs directory path containing the directories that need quotas
# -quoatasize = size of quota bytes (ex « 500000 »)
#
#
# EXAMPLE
# .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 10.10.10.1 -user root -password P@ssword1
# #
######## ######
Accept input parameters
Param([String]$isilonip,[String]$username,[String]$password)
# Avec un certificat par défaut, vous voyez normalement une erreur de certificat (code de blogs.msdn.com)
add-type @"
using System.Net ;
à l’aide de System.Security.Cryptography.X509Certificates ;
classe publique TrustAll : ICertificatePolicy {
public TrustAll() {}
public bool CheckValidationResult(
ServicePoint sPoint, X509Certificate cert,
WebRequest req, int problem) {
return true ;
}
}
"@
[System.Net.ServicePointManager] ::CertificatePolicy = New-object TrustAll
#if les paramètres corrects n’ont pas été transmis, nous quitterons après un message
si ( !) $isilonip -and $username -and $password )) {
write « failed to specify parameters » ;
écrivez « Exemple : .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 192.168.1.2 -username root -password p@ssw0rd1 » ;
exit
}
# Encoder l’en-tête d’autorisation de base et créer baseurl
$EncodedAuthorization = [System.Text.Encoding] ::UTF8. GetBytes ($username + « : » + $password)
$EncodedPassword = [System.Convert] ::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"}
$baseurl = 'https://' + $isilonip + » :8080"
# Obtenez tous les quotas
définis $resourceurl = « /platform/1/quota/quotas"
$uri = $baseurl + $resourceurl
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
$ISIObject.quotas
Créé : 18/09/2013 par Jeremy Smith, EMC NAS Specialist Central Division
# Modifié :
#
#
# ps_isilon_get_quotas_via_papi.ps1 - Obtenez tous les quotas sur un cluster
Isilon# Remarque : Vous devez utiliser OneFS 7.0.2 ou une version ultérieure pour tirer parti de PAPI et l’accès HTTP doit être activé sur le cluster.
N°
# PARAMETERS
#
# -isilonip = node IP
# -username
# -password
# -path = /ifs directory path containing the directories that need quotas
# -quoatasize = size of quota bytes (ex « 500000 »)
#
#
# EXAMPLE
# .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 10.10.10.1 -user root -password P@ssword1
# #
######## ######
Accept input parameters
Param([String]$isilonip,[String]$username,[String]$password)
# Avec un certificat par défaut, vous voyez normalement une erreur de certificat (code de blogs.msdn.com)
add-type @"
using System.Net ;
à l’aide de System.Security.Cryptography.X509Certificates ;
classe publique TrustAll : ICertificatePolicy {
public TrustAll() {}
public bool CheckValidationResult(
ServicePoint sPoint, X509Certificate cert,
WebRequest req, int problem) {
return true ;
}
}
"@
[System.Net.ServicePointManager] ::CertificatePolicy = New-object TrustAll
#if les paramètres corrects n’ont pas été transmis, nous quitterons après un message
si ( !) $isilonip -and $username -and $password )) {
write « failed to specify parameters » ;
écrivez « Exemple : .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 192.168.1.2 -username root -password p@ssw0rd1 » ;
exit
}
# Encoder l’en-tête d’autorisation de base et créer baseurl
$EncodedAuthorization = [System.Text.Encoding] ::UTF8. GetBytes ($username + « : » + $password)
$EncodedPassword = [System.Convert] ::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"}
$baseurl = 'https://' + $isilonip + » :8080"
# Obtenez tous les quotas
définis $resourceurl = « /platform/1/quota/quotas"
$uri = $baseurl + $resourceurl
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
$ISIObject.quotas
Affected Products
Isilon, PowerScale OneFS, Isilon Platform APIArticle Properties
Article Number: 000177716
Article Type: Solution
Last Modified: 11 ديسمبر 2023
Version: 6
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.