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

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

本文适用于 本文不适用于 本文并非针对某种特定的产品。 本文并非包含所有产品版本。

症状

Nie dotyczy

原因

Nie dotyczy

解决方案

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

受影响的产品

Isilon, PowerScale OneFS, Isilon Platform API
文章属性
文章编号: 000177716
文章类型: Solution
上次修改时间: 11 12月 2023
版本:  6
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。