Isilon: Korzystanie z programu PowerShell z interfejsem API platformy — podstawy

Samenvatting: W tym artykule wyjaśniono, jak nawiązać połączenie z klastrem za pomocą programu PowerShell i interfejsu PAPI (interfejs API platformy).

Dit artikel is van toepassing op Dit artikel is niet van toepassing op Dit artikel is niet gebonden aan een specifiek product. Niet alle productversies worden in dit artikel vermeld.

Symptomen

Nie dotyczy

Oorzaak

Nie dotyczy

Oplossing

Uwaga: Ten temat jest częścią centrum informacji Isilon SDK — Isilon.

Wprowadzenie
Po wprowadzeniu nowego interfejsu API platformy RESTful (PAPI) istnieje teraz znacznie łatwiejszy i bardziej elegancki sposób automatyzacji klastrów Isilon i zarządzania nimi za pomocą programu PowerShell. W tym artykule wyjaśniono podstawy łączenia się z klastrem za pomocą programu PowerShell i PAPI.

Zdecydowanie zaleca się pobranie i przeczytanie podręcznika REFERENCYJNEGO PAPI dotyczącego wersji OneFS tutaj.

Ponieważ PAPI zapewnia dostęp do klastra za pośrednictwem REST, można przetwarzać zasoby za pomocą metod HTTP, takich jak GET, POST, PUT i DELETE. Obiekty i kolekcje są wymieniane jako dokumenty sformatowane JSON. Aby użyć interfejsu PAPI, należy włączyć protokół HTTP w klastrze, logując się do interfejsu WebUI i przechodząc do: Protokołów>Ustawienia> HTTP Włącz protokół HTTP.

PowerShell wer. 3

Program PowerShell v3 ma wbudowane metody, które upraszczają dostęp RESTful. Aktualną wersję programu PowerShell można sprawdzić, patrząc na wartość $PSVersionTable:

SLN319397_en_US__1i_isilon_powershell 2

jeśli nie masz programu PowerShell v3 do pobrania i instalacji środowiska .NET Framework w wersji 4, którą można znaleźć tutaj.
W tym miejscu pobierz i zainstaluj odpowiednią strukturę zarządzania v3.

Nawiązywanie połączenia z klastrem

Poniższy skrypt akceptuje parametry adresu IP lub nazwy hosta Isilon, nazwy użytkownika i hasła:

# Accept input parameters
param([String]$isilonip,[String]$username,[String]$password)

Aby uzyskać dostęp do zasobów klastra, użyjemy "Invoke-RestMethod" z odpowiednimi parametrami. Ta metoda wymaga kilku parametrów, takich jak ciąg URI, treść (używana do testu POST), nagłówki itp. Poniższy kod tworzy potrzebne informacje nagłówka i podstawowy adres URL, aby uzyskać dostęp:

# Encode basic authorization header and create baseurl
$EncodedAuthorization = [System.Text.Encoding]:UTF8. GetBytes($username + ":" + $password)
$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"
$baseurl = 'https://' + $isilonip +":8080"

W tym przykładzie mamy dostęp do limitów. Dodaj go do podstawowego adresu URL, aby utworzyć ostatni identyfikator URI, który przejdzie do opcji "Invoke-RestMethod". Jeśli przyjrzysz się dokumentacji PAPI, zobaczysz, że zbiór zasobów jest dostępny w następującym formacie"/platform/1/<namespace>/<collection-name>". Jeśli na przykład chcemy uzyskać zbiór obiektów reprezentujących wszystkie limity zdefiniowane w klastrze, należy uzyskać "/platform/1/quota/quotas".

$resourceurl = "/platform/1/quota/quotas"
$uri = $baseurl + $resourceurl

Teraz wywołujemy Invoke-RestMethod, a następnie dostęp do zwróconego obiektu, który zawiera zbiór limitów:
$ISIObject = Invoke-RestMethod -Uri $url -Headers $headers -Method Get
$ISIObject.quotas

Oto przykład danych wyjściowych skryptu:
SLN319397_en_US__3i_isilon_powershell 3

SLN319397_en_US__2i_isilon_powershell

istnieje lista wszystkich limitów i ich właściwości zdefiniowanych w klastrze. Korzystając z tej metody, PSv3 automatycznie konwertuje dane wyjściowe JSON na obiekty.

Treść skryptu:
#######

utworzono: 18.09.2013 r. jeremy Smith, EMC NAS Specialist Central Division
# Modified:

#
# ps_isilon_get_quotas_via_papi.ps1 — pobierz wszystkie limity w klastrze
Isilon# Uwaga: Musisz być w wersji OneFS 7.0.2 lub nowszej, aby korzystać z PAPI, a dostęp HTTP musi być włączony w klastrze.
Nr
# 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
# # #

##########


Zaakceptuj parametry
wejściowe Param([String]$isilonip,[String]$username,[String]$password)


# Z domyślnym certyfikatem zwykle wyświetlany jest błąd certyfikatu (kod z blogs.msdn.com)
add-type @"
using System.Net;
korzystanie z System.Security.Cryptography.X509Certificates;

    Klasa publiczna 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 the correct parameters were not passed we exit after a message
if (!( $isilonip -and $username -and $password )) {
write "failed to specify parameters";
   wpisz "Przykład: .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 192.168.1.2 -username root -password p@ssw0rd1" ;
   exit
}




# Encode basic authorization header and create 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

Getroffen producten

Isilon, PowerScale OneFS, Isilon Platform API
Artikeleigenschappen
Artikelnummer: 000177716
Artikeltype: Solution
Laatst aangepast: 20 jan. 2026
Versie:  7
Vind antwoorden op uw vragen via andere Dell gebruikers
Support Services
Controleer of uw apparaat wordt gedekt door Support Services.