Isilon: Brug af PowerShell med Platform API - Det grundlæggende
摘要: Denne artikel forklarer, hvordan du opretter forbindelse til en klynge ved hjælp af PowerShell og PAPI (platform-API).
本文适用于
本文不适用于
本文并非针对某种特定的产品。
本文并非包含所有产品版本。
症状
Ikke relevant
原因
Ikke relevant
解决方案
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
受影响的产品
Isilon, PowerScale OneFS, Isilon Platform API文章属性
文章编号: 000177716
文章类型: Solution
上次修改时间: 11 12月 2023
版本: 6
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。