Isilon: Verwenden von PowerShell mit der Plattform-API – Die Grundlagen
摘要: In diesem Artikel wird erläutert, wie Sie eine Verbindung zu einem Cluster über PowerShell und die PAPI (Platform API) herstellen.
本文适用于
本文不适用于
本文并非针对某种特定的产品。
本文并非包含所有产品版本。
症状
N. z.
原因
N. z.
解决方案
Hinweis: Dieses Thema ist Teil des Isilon SDK – Isilon Info Hub.
Einführung
Mit der Einführung der neuen RESTful Platform API (PAPI) gibt es jetzt eine viel einfachere und elegantere Möglichkeit, Isilon-Cluster mit PowerShell zu automatisieren und zu managen. In diesem Artikel werden die Grundlagen zum Herstellen einer Verbindung zu einem Cluster mit powershell und PAPI erläutert.
Es wird dringend empfohlen, dass Sie das PAPI-Referenzhandbuch für Ihre Version von OneFS hier herunterladen und lesen.
Da der PAPI über REST Zugriff auf das Cluster bietet, können Sie Ressourcen mithilfe von HTTP-Methoden wie GET, POST, PUT und DELETE bearbeiten. Die Darstellungen von Objekten und Sammlungen werden als JSON-formatierte Dokumente ausgetauscht. Um papi zu verwenden, müssen Sie HTTP auf dem Cluster aktivieren, indem Sie sich bei der WebUI anmelden und zu navigieren: Protokolle>HTTP-Einstellungen>Aktivieren Sie HTTP.
Wenn Sie powershell v3 nicht haben, laden Sie .NET Framework Version 4 herunter und installieren Sie es hier.
Laden Sie dann das entsprechende v3-Management-Framework herunter und installieren Sie es hier.
# Accept input parameters
Param([String]$isilonip,[String]$username,[String]$password)
Für den Zugriff auf die Ressourcen auf dem Cluster verwenden wir "Invoke-RestMethod" mit den entsprechenden Parametern. Bei dieser Methode werden mehrere Parameter wie eine URI-Zeichenfolge, ein Text (für einen POST verwendet), Kopfzeilen usw. verwendet. Der folgende Code erstellt die benötigten Header-Informationen und die Basis-URL für den Zugriff:
# Codieren Sie den grundlegenden Autorisierungsheader und erstellen Sie baseurl
$EncodedAuthorization = [System.Text.Encoding]::UTF8. GetBytes ($username + ':' + $password)
$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"
$baseurl = 'https://' + $isilonip +":8080"
In diesem Beispiel greifen wir auf Quotas zu. Fügen Sie ihn zur Basis-URL hinzu, um den endgültigen URI zu erstellen, den wir an "Invoke-RestMethod" übergeben. Wenn Sie sich die PAPI-Dokumentation ansehen, sehen Sie, dass auf eine Sammlung von Ressourcen im folgenden Format zugegriffen wird: "/platform/1/<namespace>/<collection-name>". Wenn wir beispielsweise die Sammlung von Objekten abrufen möchten, die alle auf dem Cluster definierten Quotas repräsentieren, müssen wir "/platform/1/quota/quotas" erhalten.
$resourceurl = "/platform/1/quota/quotas"
$uri = $baseurl + $resourceurl
Jetzt nennen wir Invoke-RestMethod und dann Zugriff auf das zurückgegebene Objekt, das die Quota-Sammlung enthält:
Hier ist ein Beispiel für die Skriptausgabe:
Es gibt eine Liste aller Quotas und deren Eigenschaften, die auf dem Cluster definiert sind. Mit dieser Methode konvertiert PSv3 die JSON-Ausgabe automatisch in Objekte.
Skripttext:
Einführung
Mit der Einführung der neuen RESTful Platform API (PAPI) gibt es jetzt eine viel einfachere und elegantere Möglichkeit, Isilon-Cluster mit PowerShell zu automatisieren und zu managen. In diesem Artikel werden die Grundlagen zum Herstellen einer Verbindung zu einem Cluster mit powershell und PAPI erläutert.
Es wird dringend empfohlen, dass Sie das PAPI-Referenzhandbuch für Ihre Version von OneFS hier herunterladen und lesen.
Da der PAPI über REST Zugriff auf das Cluster bietet, können Sie Ressourcen mithilfe von HTTP-Methoden wie GET, POST, PUT und DELETE bearbeiten. Die Darstellungen von Objekten und Sammlungen werden als JSON-formatierte Dokumente ausgetauscht. Um papi zu verwenden, müssen Sie HTTP auf dem Cluster aktivieren, indem Sie sich bei der WebUI anmelden und zu navigieren: Protokolle>HTTP-Einstellungen>Aktivieren Sie HTTP.
PowerShell v3
PowerShell v3 verfügt über integrierte Methoden, die den RESTful-Zugriff vereinfachen. Sie können Ihre aktuelle PowerShell-Version überprüfen, indem Sie sich den wert $PSVersionTable ansehen:
Wenn Sie powershell v3 nicht haben, laden Sie .NET Framework Version 4 herunter und installieren Sie es hier.
Laden Sie dann das entsprechende v3-Management-Framework herunter und installieren Sie es hier.
Herstellen einer Verbindung zum Cluster
Das folgende Skript akzeptiert Parameter für eine Isilon-IP-Adresse oder einen Hostnamen, einen Benutzernamen und ein Passwort:# Accept input parameters
Param([String]$isilonip,[String]$username,[String]$password)
Für den Zugriff auf die Ressourcen auf dem Cluster verwenden wir "Invoke-RestMethod" mit den entsprechenden Parametern. Bei dieser Methode werden mehrere Parameter wie eine URI-Zeichenfolge, ein Text (für einen POST verwendet), Kopfzeilen usw. verwendet. Der folgende Code erstellt die benötigten Header-Informationen und die Basis-URL für den Zugriff:
# Codieren Sie den grundlegenden Autorisierungsheader und erstellen Sie baseurl
$EncodedAuthorization = [System.Text.Encoding]::UTF8. GetBytes ($username + ':' + $password)
$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"
$baseurl = 'https://' + $isilonip +":8080"
In diesem Beispiel greifen wir auf Quotas zu. Fügen Sie ihn zur Basis-URL hinzu, um den endgültigen URI zu erstellen, den wir an "Invoke-RestMethod" übergeben. Wenn Sie sich die PAPI-Dokumentation ansehen, sehen Sie, dass auf eine Sammlung von Ressourcen im folgenden Format zugegriffen wird: "/platform/1/<namespace>/<collection-name>". Wenn wir beispielsweise die Sammlung von Objekten abrufen möchten, die alle auf dem Cluster definierten Quotas repräsentieren, müssen wir "/platform/1/quota/quotas" erhalten.
$resourceurl = "/platform/1/quota/quotas"
$uri = $baseurl + $resourceurl
Jetzt nennen wir Invoke-RestMethod und dann Zugriff auf das zurückgegebene Objekt, das die Quota-Sammlung enthält:
$ISIObject = Invoke-RestMethod -Uri $url -Headers $headers -Method Get
$ISIObject.quotas
$ISIObject.quotas
Hier ist ein Beispiel für die Skriptausgabe:
Es gibt eine Liste aller Quotas und deren Eigenschaften, die auf dem Cluster definiert sind. Mit dieser Methode konvertiert PSv3 die JSON-Ausgabe automatisch in Objekte.
Skripttext:
########### ############
Erstellt: 18.09.2013 von Jeremy Smith, EMC NAS Specialist Central Division
# Geändert:
#
#
# ps_isilon_get_quotas_via_papi.ps1 – alle Quotas auf einem Isilon-Cluster
abrufen# Hinweis: Sie müssen oneFS 7.0.2 oder höher verwenden, um PAPI zu nutzen, und HTTP Access muss auf dem Cluster aktiviert sein.
#
# PARAMETERS
#
# -isilonip = Node IP
# -username
# -password
# -path = /ifs Verzeichnispfad mit den Verzeichnisverzeichnissen, die Quotas
benötigen# -quoatasize = Größe der Quota-Byte (ex "500000")
#
#
# EXAMPLE
# .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 10.10.10.1 -user root -password P@ssword1
#
####################
Akzeptieren Sie die Eingabeparameter
Param([Zeichenfolge]$isilonip,[Zeichenfolge]$username,[Zeichenfolge]$password)
# Bei einem Standardzertifikat wird normalerweise ein Zertifikatfehler (Code von blogs.msdn.com)
add-type @"
mit System.Net angezeigt.
mit System.Security.Cryptography.X509Certificates;
TrustAll der öffentlichen Klasse: ICertificatePolicy {
public TrustAll() {}
public bool CheckValidationResult(
ServicePoint sPoint, X509Certificate cert,
WebRequest req, int problem) {
return true;
}
}
"@
[System.Net.ServicePointManager]::CertificatePolicy = new-object TrustAll
#if die korrekten Parameter nicht übergeben wurden, beenden wir nach einer Meldung
, wenn (!( $isilonip -und $username -und $password)) {
write "failed to specify parameters";
Schreiben Sie "Beispiel: .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 192.168.1.2 -username root -password p@ssw0rd1" ;
exit
}
# Codieren Sie den Grundlegenden Autorisierungsheader und erstellen Sie baseurl
$EncodedAuthorization = [System.Text.Encoding]::UTF8. GetBytes ($username + ':' + $password)
$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"}
$baseurl = 'https://' + $isilonip +":8080"
# Get all defined quotas
$resourceurl = "/platform/1/quota/quotas"
$uri = $baseurl + $resourceurl
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
$ISIObject.quotas
Erstellt: 18.09.2013 von Jeremy Smith, EMC NAS Specialist Central Division
# Geändert:
#
#
# ps_isilon_get_quotas_via_papi.ps1 – alle Quotas auf einem Isilon-Cluster
abrufen# Hinweis: Sie müssen oneFS 7.0.2 oder höher verwenden, um PAPI zu nutzen, und HTTP Access muss auf dem Cluster aktiviert sein.
#
# PARAMETERS
#
# -isilonip = Node IP
# -username
# -password
# -path = /ifs Verzeichnispfad mit den Verzeichnisverzeichnissen, die Quotas
benötigen# -quoatasize = Größe der Quota-Byte (ex "500000")
#
#
# EXAMPLE
# .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 10.10.10.1 -user root -password P@ssword1
#
####################
Akzeptieren Sie die Eingabeparameter
Param([Zeichenfolge]$isilonip,[Zeichenfolge]$username,[Zeichenfolge]$password)
# Bei einem Standardzertifikat wird normalerweise ein Zertifikatfehler (Code von blogs.msdn.com)
add-type @"
mit System.Net angezeigt.
mit System.Security.Cryptography.X509Certificates;
TrustAll der öffentlichen Klasse: ICertificatePolicy {
public TrustAll() {}
public bool CheckValidationResult(
ServicePoint sPoint, X509Certificate cert,
WebRequest req, int problem) {
return true;
}
}
"@
[System.Net.ServicePointManager]::CertificatePolicy = new-object TrustAll
#if die korrekten Parameter nicht übergeben wurden, beenden wir nach einer Meldung
, wenn (!( $isilonip -und $username -und $password)) {
write "failed to specify parameters";
Schreiben Sie "Beispiel: .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 192.168.1.2 -username root -password p@ssw0rd1" ;
exit
}
# Codieren Sie den Grundlegenden Autorisierungsheader und erstellen Sie baseurl
$EncodedAuthorization = [System.Text.Encoding]::UTF8. GetBytes ($username + ':' + $password)
$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"}
$baseurl = 'https://' + $isilonip +":8080"
# Get all defined quotas
$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
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。