Isilon: Bruke PowerShell med Plattform-API – Grunnleggende
摘要: Denne artikkelen forklarer hvordan du kobler til en klynge ved hjelp av PowerShell og PAPI (plattform-API).
本文适用于
本文不适用于
本文并非针对某种特定的产品。
本文并非包含所有产品版本。
症状
n/a
原因
n/a
解决方案
Merk: Dette emnet er en del av Isilon SDK – Isilon Info Hub.
Introduksjon
Med introduksjonen av den nye RESTful-plattform-API-en (PAPI) finnes det nå en mye enklere og mer elegant måte å automatisere og administrere Isilon-klynger på ved hjelp av PowerShell. Denne artikkelen forklarer det grunnleggende om hvordan du kobler til en klynge ved hjelp av PowerShell og PAPI.
Det anbefales på det sterkeste at du laster ned og leser PAPI-referanseveiledningen for din versjon av OneFS her.
Siden PAPI gir tilgang til klyngen via REST, kan du manipulere ressurser ved hjelp av HTTP-metoder som GET, POST, PUT og DELETE. Representasjonene av objekter og samlinger byttes som JSON-formaterte dokumenter. Hvis du vil bruke PAPI, må du aktivere HTTP på klyngen ved å logge på webgrensesnittet og navigere til: Protokoller>HTTP-innstillinger>Aktiver HTTP.
Hvis du ikke har PowerShell v3, kan du laste ned og installere .NET Framework versjon 4 som du finner her.
Last deretter ned og installer det aktuelle v3-administrasjonsrammeverket her.
# Godta inndataparameterne
Param ([string]$isilonip,[string]$username,[string]$password)
For å få tilgang til ressursene på klyngen vil vi bruke "Invoke-RestMethod" med de aktuelle parametrene. Denne metoden tar flere parametere, for eksempel en URI-streng, en body (brukt for en POST), overskrifter osv. Følgende kode bygger opp headerinformasjonen vi trenger og den grunnleggende URL-adressen for tilgang:
# Kode grunnleggende autorisasjonshode og opprett baseurl
$EncodedAuthorization = [System.Text.Encoding]::UTF8. GetBytes ($username + ':' + $password)
$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"
$baseurl = 'https://' + $isilonip +":8080"
I dette eksemplet får vi tilgang til kvoter. Legg den til i den grunnleggende URL-adressen for å opprette den endelige URI-en som vi sender til "Invoke-RestMethod" (Aktiver RestMethod). Hvis du ser på PAPI-dokumentasjonen, vil du se at du får tilgang til en samling ressurser i følgende format: «/platform/1/<namespace>/<collection-name>». Hvis vi for eksempel ønsker å hente inn objekter som representerer alle kvotene som er definert i klyngen, må vi få «/platform/1/quota/quotas».
$resourceurl = "/platform/1/quota/quotas"
$uri = $baseurl + $resourceurl
Nå kaller vi Invoke-RestMethod og deretter tilgang til det returnerte objektet som inneholder kvotesamlingen:
Her er et eksempel på skriptutdataene:
Det finnes en liste over alle kvotene og egenskapene deres som er definert i klyngen. Ved hjelp av denne metoden konverterer PSv3 JSON-utdataene automatisk til objekter.
Skriptkropp:
Introduksjon
Med introduksjonen av den nye RESTful-plattform-API-en (PAPI) finnes det nå en mye enklere og mer elegant måte å automatisere og administrere Isilon-klynger på ved hjelp av PowerShell. Denne artikkelen forklarer det grunnleggende om hvordan du kobler til en klynge ved hjelp av PowerShell og PAPI.
Det anbefales på det sterkeste at du laster ned og leser PAPI-referanseveiledningen for din versjon av OneFS her.
Siden PAPI gir tilgang til klyngen via REST, kan du manipulere ressurser ved hjelp av HTTP-metoder som GET, POST, PUT og DELETE. Representasjonene av objekter og samlinger byttes som JSON-formaterte dokumenter. Hvis du vil bruke PAPI, må du aktivere HTTP på klyngen ved å logge på webgrensesnittet og navigere til: Protokoller>HTTP-innstillinger>Aktiver HTTP.
PowerShell v3
PowerShell v3 har innebygde metoder som forenkler REST-tilgang. Du kan kontrollere gjeldende PowerShell-versjon ved å se på $PSVersionTable verdi:
Hvis du ikke har PowerShell v3, kan du laste ned og installere .NET Framework versjon 4 som du finner her.
Last deretter ned og installer det aktuelle v3-administrasjonsrammeverket her.
Koble til klyngen
Skriptet nedenfor godtar parametere for en Isilon IP-adresse eller et vertsnavn, et brukernavn og passord:# Godta inndataparameterne
Param ([string]$isilonip,[string]$username,[string]$password)
For å få tilgang til ressursene på klyngen vil vi bruke "Invoke-RestMethod" med de aktuelle parametrene. Denne metoden tar flere parametere, for eksempel en URI-streng, en body (brukt for en POST), overskrifter osv. Følgende kode bygger opp headerinformasjonen vi trenger og den grunnleggende URL-adressen for tilgang:
# Kode grunnleggende autorisasjonshode og opprett baseurl
$EncodedAuthorization = [System.Text.Encoding]::UTF8. GetBytes ($username + ':' + $password)
$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"
$baseurl = 'https://' + $isilonip +":8080"
I dette eksemplet får vi tilgang til kvoter. Legg den til i den grunnleggende URL-adressen for å opprette den endelige URI-en som vi sender til "Invoke-RestMethod" (Aktiver RestMethod). Hvis du ser på PAPI-dokumentasjonen, vil du se at du får tilgang til en samling ressurser i følgende format: «/platform/1/<namespace>/<collection-name>». Hvis vi for eksempel ønsker å hente inn objekter som representerer alle kvotene som er definert i klyngen, må vi få «/platform/1/quota/quotas».
$resourceurl = "/platform/1/quota/quotas"
$uri = $baseurl + $resourceurl
Nå kaller vi Invoke-RestMethod og deretter tilgang til det returnerte objektet som inneholder kvotesamlingen:
$ISIObject = Invoke-RestMethod -Uri $url -Headers $headers -Method Get
$ISIObject.quotas
$ISIObject.quotas
Her er et eksempel på skriptutdataene:
Det finnes en liste over alle kvotene og egenskapene deres som er definert i klyngen. Ved hjelp av denne metoden konverterer PSv3 JSON-utdataene automatisk til objekter.
Skriptkropp:
##################################################################
18.09.2013 av Wat Smith, EMC NAS Specialist Central Division
# endret:
#
#
# ps_isilon_get_quotas_via_papi.ps1 – få alle kvoter på en Isilon-klynge
# Merk: Du må være på OneFS 7.0.2 eller nyere for å utnytte PAPI- og HTTP-tilgangen må være aktivert i klyngen.
#
# 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
# #
#
##############################################################
# Godta inndataparameterne
Param ([Streng]$isilonip,[Streng]$username,[String]$password)
# Med en standard-sert vil du vanligvis se en sertfeil (kode fra blogs.msdn.com)
add-type @"
ved hjelp av System.Net;
ved hjelp av System.Security.Cryptography.X509Certificates;
TrustAll i offentlig 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 riktige parameterne ble ikke sendt, avslutter vi etter en melding
hvis (!( $isilonip -and $username -and $password)) {
write "failed to specify parameters";
skriv «Eksempel: .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 192.168.1.2 -username root -password p@ssw0rd1" ;
exit
}
# Kode grunnleggende autorisasjonshode og opprett baseurl
$EncodedAuthorization = [System.Text.Encoding]::UTF8. GetBytes ($username + ':' + $password)
$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"}
$baseurl = 'https://' + $isilonip +":8080"
# Få alle definerte
kvoter $resourceurl = "/platform/1/quota/quotas"
$uri = $baseurl + $resourceurl
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
$ISIObject.quotas
18.09.2013 av Wat Smith, EMC NAS Specialist Central Division
# endret:
#
#
# ps_isilon_get_quotas_via_papi.ps1 – få alle kvoter på en Isilon-klynge
# Merk: Du må være på OneFS 7.0.2 eller nyere for å utnytte PAPI- og HTTP-tilgangen må være aktivert i klyngen.
#
# 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
# #
#
##############################################################
# Godta inndataparameterne
Param ([Streng]$isilonip,[Streng]$username,[String]$password)
# Med en standard-sert vil du vanligvis se en sertfeil (kode fra blogs.msdn.com)
add-type @"
ved hjelp av System.Net;
ved hjelp av System.Security.Cryptography.X509Certificates;
TrustAll i offentlig 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 riktige parameterne ble ikke sendt, avslutter vi etter en melding
hvis (!( $isilonip -and $username -and $password)) {
write "failed to specify parameters";
skriv «Eksempel: .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 192.168.1.2 -username root -password p@ssw0rd1" ;
exit
}
# Kode grunnleggende autorisasjonshode og opprett baseurl
$EncodedAuthorization = [System.Text.Encoding]::UTF8. GetBytes ($username + ':' + $password)
$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"}
$baseurl = 'https://' + $isilonip +":8080"
# Få alle definerte
kvoter $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
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。