Isilon: Använda PowerShell med plattforms-API – grunderna

Summary: I den här artikeln beskrivs hur du ansluter till ett kluster med powershell och PAPI (platform API).

Bu makale şunlar için geçerlidir: Bu makale şunlar için geçerli değildir: Bu makale, belirli bir ürüne bağlı değildir. Bu makalede tüm ürün sürümleri tanımlanmamıştır.

Symptoms

Ej tillämpligt

Cause

Ej tillämpligt

Resolution

Obs! Det här avsnittet är en del av Isilon SDK – Isilon-informationshubben.

Införandet
Med det nya RESTful-plattformens API (PAPI) har vi nu ett mycket enklare och elegantare sätt att automatisera och hantera Isilon-kluster med PowerShell. I den här artikeln förklaras grunderna för hur du ansluter till ett kluster med PowerShell och PAPI.

Vi rekommenderar starkt att du hämtar och läser PAPI-referensguiden för din version av OneFS här.

Eftersom PAPI ger åtkomst till klustret via REST kan du manipulera resurser med hjälp av HTTP-metoder som GET, POST, PUT och DELETE. Representationer av objekt och samlingar byts ut som JSON-formaterade dokument. Om du vill använda PAPI måste du aktivera HTTP i klustret genom att logga in på webbgränssnittet och navigera till: Protokoll>HTTP-inställningar>Aktivera HTTP.

Powershell v3

Powershell v3 har inbyggda metoder som förenklar RESTful-åtkomst. Du kan kontrollera din aktuella PowerShell-version genom att titta på värdet för $PSVersionTable:

SLN319397_en_US__1i_isilon_powershell–2

Om du inte har PowerShell v3 kan du ladda ner och installera .NET Framework version 4 här.
Ladda sedan ner och installera lämpligt v3-hanteringsramverk här.

Ansluta till klustret

Nedanstående skript accepterar parametrar för en Isilon IP-adress eller värdnamn, ett användarnamn och lösenord:

# Godkänn indataparametrar
param ([sträng]$isilonip,[sträng]$username,[sträng]$password)

För åtkomst till resurserna i klustret använder vi "Invoke-RestMethod" med lämpliga parametrar. Den här metoden tar flera parametrar, t.ex. en URI-sträng, en brödtext (som används för ett POST), huvuden osv. Följande kod skapar den rubrikinformation vi behöver och bas-URL:en för åtkomst:

# Koda grundläggande auktoriseringsrubrik och skapa baseurl
$EncodedAuthorization = [System.Text.Encoding]:UTF8. GetBytes ($username + ":" + $password)
$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"
$baseurl = 'https://' + $isilonip +":8080"

I det här exemplet får vi åtkomst till kvoter. Lägg till den i bas-URL:en för att skapa den slutliga URI som vi skickar till "Invoke-RestMethod". Om du tittar på PAPI-dokumentationen ser du att en samling resurser har åtkomst till följande format "/platform/1/<namespace>/<collection-name>". Om vi till exempel vill hämta insamling av objekt som representerar alla kvoter som definierats i klustret måste vi få "/platform/1/quota/quotas".

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

Nu ringer vi Invoke-RestMethod och går sedan till det returnerade objektet som innehåller kvotinsamlingen:
$ISIObject = Invoke-RestMethod -Uri $url -Headers $headers -Method Get
$ISIObject.quotas

Här är ett exempel på skriptutdata:
SLN319397_en_US__3i_isilon_powershell–3

SLN319397_en_US__2i_isilon_powershell

Det finns en lista över alla kvoter och deras egenskaper som definierats i klustret. Med den här metoden konverterar PSv3 automatiskt JSON-utdata till objekt.

Skripttext:
#########################
#
Skapad: 2013-09-18 av 2013-09-09 av Uw Smith, EMC NAS Specialist Central Division
# ändrad:

#
# ps_isilon_get_quotas_via_papi.ps1 – få alla kvoter i ett Isilon-kluster
# Obs! Du måste vara på OneFS 7.0.2 eller senare för att utnyttja PAPI- och HTTP-åtkomsten måste vara aktiverad i klustret.
#
# 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
# #

##################


Godkänn indataparametrar
Param([String]$isilonip,[String]$username,[String]$password)


# Med ett standardcertifikat skulle du normalt se ett certifikatfel (kod från blogs.msdn.com)
add-type @"
med System.Net;
använda System.Security.Crypto crypto 509certificates;

    offentlig klass 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 rätt parametrar inte blev godkända avslutar vi efter ett meddelande
om (!( $isilonip -and $username -and $password)) {
write "failed to specify parameters";
   skriv "Exempel: .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 192.168.1.2 -username root -password p@ssw0rd1" ;
   exit
}




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

# Få alla definierade kvoter
$resourceurl = "/platform/1/quota/quotas"
$uri = $baseurl + $resourceurl
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
$ISIObject.quotas

Etkilenen Ürünler

Isilon, PowerScale OneFS, Isilon Platform API
Makale Özellikleri
Article Number: 000177716
Article Type: Solution
Son Değiştirme: 11 Ara 2023
Version:  6
Sorularınıza diğer Dell kullanıcılarından yanıtlar bulun
Destek Hizmetleri
Aygıtınızın Destek Hizmetleri kapsamında olup olmadığını kontrol edin.