Isilon: Verwenden von PowerShell mit der Plattform-API – Die Grundlagen

Summary: In diesem Artikel wird erläutert, wie Sie eine Verbindung zu einem Cluster über PowerShell und die PAPI (Platform API) herstellen.

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

N. z.

Cause

N. z.

Resolution

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.

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:

SLN319397_en_US__1i_isilon_powershell-2

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

Hier ist ein Beispiel für die Skriptausgabe:
SLN319397_en_US__3i_isilon_powershell-3

SLN319397_en_US__2i_isilon_powershell

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

Affected Products

Isilon, PowerScale OneFS, Isilon Platform API
Article Properties
Article Number: 000177716
Article Type: Solution
Last Modified: 11 Dec 2023
Version:  6
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.