Isilon : Utilisation de PowerShell avec l’API de plateforme - Bases (en anglais)

摘要: Cet article explique comment se connecter à un cluster à l’aide de PowerShell et de PAPI (API de plate-forme).

本文适用于 本文不适用于 本文并非针对某种特定的产品。 本文并非包含所有产品版本。

症状

s/o

原因

s/o

解决方案

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.

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 :

SLN319397_en_US__1i_isilon_powershell-2

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

Voici un exemple de sortie de script :
SLN319397_en_US__3i_isilon_powershell-3

SLN319397_en_US__2i_isilon_powershell

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.

# 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

受影响的产品

Isilon, PowerScale OneFS, Isilon Platform API
文章属性
文章编号: 000177716
文章类型: Solution
上次修改时间: 11 12月 2023
版本:  6
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。