Isilon: Korzystanie z programu PowerShell z interfejsem API platformy — podstawy
Summary: W tym artykule wyjaśniono, jak nawiązać połączenie z klastrem za pomocą programu PowerShell i interfejsu PAPI (interfejs API platformy).
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
Nie dotyczy
Cause
Nie dotyczy
Resolution
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.
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.
# 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:
Oto przykład danych wyjściowych skryptu:
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:
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:
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
$ISIObject.quotas
Oto przykład danych wyjściowych skryptu:
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
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
Affected Products
Isilon, PowerScale OneFS, Isilon Platform APIArticle 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.