Isilon: Brug af PowerShell med Platform API - Det grundlæggende
Summary: Denne artikel forklarer, hvordan du opretter forbindelse til en klynge ved hjælp af PowerShell og PAPI (platform-API).
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
Ikke relevant
Cause
Ikke relevant
Resolution
Bemærk: Dette emne er en del af Isilon SDK - Isilon-informationshubben.
Indførelsen
Med introduktionen af den nye RESTful platform API (PAPI) er der nu en meget nemmere og mere elegant måde at automatisere og administrere Isilon-klynger ved hjælp af PowerShell. Denne artikel forklarer de grundlæggende oplysninger om, hvordan du opretter forbindelse til en klynge ved hjælp af PowerShell og PAPI.
Det anbefales på det kraftigste, at du downloader og læser PAPI-referencevejledningen til din version af OneFS her.
Da PAPI giver adgang til klyngen via REST, kan du håndtere ressourcer ved hjælp af HTTP-metoder som GET, POST, PUT og DELETE. Repræsentationer af objekter og samlinger udskiftes som JSON-formaterede dokumenter. For at bruge PAPI skal du aktivere HTTP på klyngen ved at logge på WebUI og navigere til: Protokoller>HTTP-indstillinger>Aktiver HTTP.
Hvis du ikke har PowerShell v3 til at downloade og installere .NET Framework-version 4, der findes her.
Download og installer derefter den relevante v3-administrationsstruktur her.
# Accepter inputparametre
param([Streng]$isilonip,[Streng]$username,[Streng]$password)
For at få adgang til ressourcerne på klyngen vil vi bruge "Invoke-RestMetometer" med de relevante parametre. Denne metode tager flere parametre som f.eks. en URI-streng, en teksttekst (bruges til en POST), overskrifter osv. Følgende kode opbygger de overskriftsoplysninger, vi har brug for, og basis-URL-adressen for adgang:
# 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"
I dette eksempel har vi adgang til kvoter. Føj den til basis-URL'en for at oprette den endelige URI, som vi vil overføre til "Invoke-RestMetmeter". Hvis du ser på PAPI-dokumentationen, vil du se, at der er adgang til en samling af ressourcer i følgende format "/platform/1/<namespace>/<collection-name>". Hvis vi f.eks. vil have samlingen af objekter, der repræsenterer alle de kvoter, der er defineret på klyngen, skal vi have "/platform/1/kvote/kvoter".
$resourceurl = "/platform/1/kvote/kvoter"
$uri = $baseurl + $resourceurl
Nu ringer vi til Invoke-RestMetmeter og derefter til det returnerede objekt, der indeholder kvotesamlingen:
Her er et eksempel på scriptoutput:
Der er en liste over alle kvoterne og deres egenskaber defineret på klyngen. Ved hjælp af denne metode konverterer PSv3 automatisk JSON-outputtet til objekter.
Scripttekst:
Indførelsen
Med introduktionen af den nye RESTful platform API (PAPI) er der nu en meget nemmere og mere elegant måde at automatisere og administrere Isilon-klynger ved hjælp af PowerShell. Denne artikel forklarer de grundlæggende oplysninger om, hvordan du opretter forbindelse til en klynge ved hjælp af PowerShell og PAPI.
Det anbefales på det kraftigste, at du downloader og læser PAPI-referencevejledningen til din version af OneFS her.
Da PAPI giver adgang til klyngen via REST, kan du håndtere ressourcer ved hjælp af HTTP-metoder som GET, POST, PUT og DELETE. Repræsentationer af objekter og samlinger udskiftes som JSON-formaterede dokumenter. For at bruge PAPI skal du aktivere HTTP på klyngen ved at logge på WebUI og navigere til: Protokoller>HTTP-indstillinger>Aktiver HTTP.
PowerShell v3
PowerShell v3 har indbyggede metoder, der forenkler RESTful-adgang. Du kan kontrollere din aktuelle PowerShell-version ved at se på $PSVersionTable værdi:
Hvis du ikke har PowerShell v3 til at downloade og installere .NET Framework-version 4, der findes her.
Download og installer derefter den relevante v3-administrationsstruktur her.
Tilslutning til klyngen
Nedenstående script accepterer parametre for en Isilon IP-adresse eller et værtsnavn, et brugernavn og en adgangskode:# Accepter inputparametre
param([Streng]$isilonip,[Streng]$username,[Streng]$password)
For at få adgang til ressourcerne på klyngen vil vi bruge "Invoke-RestMetometer" med de relevante parametre. Denne metode tager flere parametre som f.eks. en URI-streng, en teksttekst (bruges til en POST), overskrifter osv. Følgende kode opbygger de overskriftsoplysninger, vi har brug for, og basis-URL-adressen for adgang:
# 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"
I dette eksempel har vi adgang til kvoter. Føj den til basis-URL'en for at oprette den endelige URI, som vi vil overføre til "Invoke-RestMetmeter". Hvis du ser på PAPI-dokumentationen, vil du se, at der er adgang til en samling af ressourcer i følgende format "/platform/1/<namespace>/<collection-name>". Hvis vi f.eks. vil have samlingen af objekter, der repræsenterer alle de kvoter, der er defineret på klyngen, skal vi have "/platform/1/kvote/kvoter".
$resourceurl = "/platform/1/kvote/kvoter"
$uri = $baseurl + $resourceurl
Nu ringer vi til Invoke-RestMetmeter og derefter til det returnerede objekt, der indeholder kvotesamlingen:
$ISIObject = Invoke-RestMet watt -Uri $url -Headers $headers -Method Get
$ISIObject.quotas
$ISIObject.quotas
Her er et eksempel på scriptoutput:
Der er en liste over alle kvoterne og deres egenskaber defineret på klyngen. Ved hjælp af denne metode konverterer PSv3 automatisk JSON-outputtet til objekter.
Scripttekst:
####################### #####################
##
Oprettet: 18/09/2013 af Smith, EMC NAS Specialist Central Division
# Modified:
#
#
# ps_isilon_get_quotas_via_papi.ps1 – få alle kvoter på en Isilon-klyngenummer
Bemærk: Du skal være på OneFS 7.0.2 eller nyere for at kunne udnytte PAPI, og HTTP-adgang skal være aktiveret på klyngen.
# (Antal)
# PARAMETERS
#
# -isilonip = node IP
# -username
# -password
# -path = /ifs mappesti, der indeholder de mapper, der har brug for kvoter
# -quoatasize = størrelse af kvotebyte (f.eks. "500000")
#
#
# EXAMPLE
# .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 10.10.10.1 -user root -password P@ssword1
# #
#################### ####################
Accepter inputparametre
param([Streng]$isilonip,[Streng]$username,[Streng]$password)
# Med et standardcertifikat ville du normalt se en cert-fejl (kode fra blogs.msdn.com)
add-type @"
, der bruger System.Net;
ved hjælp af System.Security.Cryptografi.X509Certificates;
TrustAll i den offentlige klasse: ICertificatePolicy {
public TrustAll() {}
public bool CheckValidationResult(
ServicePoint sPoint, X509Certificate cert,
WebRequest req, int problem) {
return true;
}
}
"@
[System.Net.ServicePointManager]:CertificatePolicy = new-object TrustAll
#if de korrekte parametre blev ikke bestået. Vi afslutter efter en meddelelse
, hvis (!( $isilonip -and $username -and $password )) {
write "failed to specify parameters" (Skriv "kunne ikke angive parametre)";
skriv "Eksempel: .\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"
# Få alle definerede kvoter
$resourceurl = "/platform/1/kvote/kvoter"
$uri = $baseurl + $resourceurl
$ISIObject = Invoke-RestMetmetri -Uri $uri -Headers $headers -Method Get
$ISIObject.quotas
##
Oprettet: 18/09/2013 af Smith, EMC NAS Specialist Central Division
# Modified:
#
#
# ps_isilon_get_quotas_via_papi.ps1 – få alle kvoter på en Isilon-klyngenummer
Bemærk: Du skal være på OneFS 7.0.2 eller nyere for at kunne udnytte PAPI, og HTTP-adgang skal være aktiveret på klyngen.
# (Antal)
# PARAMETERS
#
# -isilonip = node IP
# -username
# -password
# -path = /ifs mappesti, der indeholder de mapper, der har brug for kvoter
# -quoatasize = størrelse af kvotebyte (f.eks. "500000")
#
#
# EXAMPLE
# .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 10.10.10.1 -user root -password P@ssword1
# #
#################### ####################
Accepter inputparametre
param([Streng]$isilonip,[Streng]$username,[Streng]$password)
# Med et standardcertifikat ville du normalt se en cert-fejl (kode fra blogs.msdn.com)
add-type @"
, der bruger System.Net;
ved hjælp af System.Security.Cryptografi.X509Certificates;
TrustAll i den offentlige klasse: ICertificatePolicy {
public TrustAll() {}
public bool CheckValidationResult(
ServicePoint sPoint, X509Certificate cert,
WebRequest req, int problem) {
return true;
}
}
"@
[System.Net.ServicePointManager]:CertificatePolicy = new-object TrustAll
#if de korrekte parametre blev ikke bestået. Vi afslutter efter en meddelelse
, hvis (!( $isilonip -and $username -and $password )) {
write "failed to specify parameters" (Skriv "kunne ikke angive parametre)";
skriv "Eksempel: .\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"
# Få alle definerede kvoter
$resourceurl = "/platform/1/kvote/kvoter"
$uri = $baseurl + $resourceurl
$ISIObject = Invoke-RestMetmetri -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 ديسمبر 2023
Version: 6
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.