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

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

Dieser Artikel gilt für Dieser Artikel gilt nicht für Dieser Artikel ist nicht an ein bestimmtes Produkt gebunden. In diesem Artikel werden nicht alle Produktversionen aufgeführt.

Symptome

Nie dotyczy

Ursache

Nie dotyczy

Lösung

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

Betroffene Produkte

Isilon, PowerScale OneFS, Isilon Platform API
Artikeleigenschaften
Artikelnummer: 000177716
Artikeltyp: Solution
Zuletzt geändert: 11 Dez. 2023
Version:  6
Antworten auf Ihre Fragen erhalten Sie von anderen Dell NutzerInnen
Support Services
Prüfen Sie, ob Ihr Gerät durch Support Services abgedeckt ist.