Isilon: Utilizzo di PowerShell con l'API della piattaforma - Nozioni di base (in inglese)
摘要: Questo articolo spiega come connettersi a un cluster utilizzando PowerShell e papi (API della piattaforma).
本文适用于
本文不适用于
本文并非针对某种特定的产品。
本文并非包含所有产品版本。
症状
n/d
原因
n/d
解决方案
Nota: Questo argomento fa parte di Isilon SDK - Isilon Info Hub.
Introduzione
Con l'introduzione della nuova API della piattaforma RESTful (PAPI), esiste ora un modo molto più semplice ed elegante per automatizzare e gestire i cluster Isilon utilizzando PowerShell. Questo articolo spiega le nozioni di base su come connettersi a un cluster utilizzando PowerShell e PAPI.
Si consiglia vivamente di scaricare e leggere la guida di riferimento PAPI per la versione di OneFS qui.
Poiché PAPI fornisce l'accesso al cluster tramite REST, è possibile manipolare le risorse utilizzando metodi HTTP come GET, POST, PUT ed DELETE. Le rappresentazioni di object e raccolte vengono scambiate come documenti formattati con JSON. Per utilizzare PAPI, è necessario abilitare HTTP sul cluster accedendo a WebUI e accedendo a: Protocolli>Impostazioni> HTTP Abilitare HTTP.
Se non si dispone del download e dell'installazione di .NET Framework versione 4 di PowerShell v3, vedere qui.
Quindi scaricare e installare il framework di gestione v3 appropriato qui.
# Accept input parameters
Param([Stringa]$isilonip,[Stringa]$username,[Stringa]$password)
Per accedere alle risorse nel cluster verrà utilizzato "Invoke-RestMethod" con i parametri appropriati. Questo metodo accetta diversi parametri, ad esempio una stringa URI, un corpo (utilizzato per un POST), intestazioni e così via. Il codice seguente creerà le informazioni di intestazione necessarie e l'URL di base per l'accesso:
# Codificare l'intestazione di autorizzazione di base e create baseurl
$EncodedAuthorization = [System.Text.Encoding]::UTF8. GetBytes($username + ':' + $password)
$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"
$baseurl = 'https://' + $isilonip +":8080"
In questo esempio si accede alle quote. Aggiungerlo all'URL di base per creare l'URI finale che passeremo a "Invoke-RestMethod". Se si esamina la documentazione PAPI, si noterà che è possibile accedere a una raccolta di risorse nel seguente formato:"/platform/1/<namespace>/<collection-name>". Se ad esempio si desidera ottenere la raccolta di object che rappresentano tutte le quote definite nel cluster, è necessario ottenere "/platform/1/quota/quotas".
$resourceurl = "/platform/1/quota/quotas"
$uri = $baseurl + $resourceurl
Ora chiamiamo Invoke-RestMethod e quindi si accede all'object restituito che contiene la raccolta delle quote:
Ecco un esempio di output dello script:
È disponibile un elenco di tutte le quote e delle relative proprietà definite nel cluster. Utilizzando questo metodo, PSv3 converte automaticamente l'output JSON in object.
Corpo script:
Introduzione
Con l'introduzione della nuova API della piattaforma RESTful (PAPI), esiste ora un modo molto più semplice ed elegante per automatizzare e gestire i cluster Isilon utilizzando PowerShell. Questo articolo spiega le nozioni di base su come connettersi a un cluster utilizzando PowerShell e PAPI.
Si consiglia vivamente di scaricare e leggere la guida di riferimento PAPI per la versione di OneFS qui.
Poiché PAPI fornisce l'accesso al cluster tramite REST, è possibile manipolare le risorse utilizzando metodi HTTP come GET, POST, PUT ed DELETE. Le rappresentazioni di object e raccolte vengono scambiate come documenti formattati con JSON. Per utilizzare PAPI, è necessario abilitare HTTP sul cluster accedendo a WebUI e accedendo a: Protocolli>Impostazioni> HTTP Abilitare HTTP.
PowerShell v3
PowerShell v3 dispone di metodi integrati che semplificano l'accesso RESTful. È possibile controllare la versione corrente di PowerShell esaminando il valore $PSVersionTable:
Se non si dispone del download e dell'installazione di .NET Framework versione 4 di PowerShell v3, vedere qui.
Quindi scaricare e installare il framework di gestione v3 appropriato qui.
Connessione al cluster
Lo script seguente accetta i parametri per un indirizzo IP o un nome host Isilon, un nome utente e una password:# Accept input parameters
Param([Stringa]$isilonip,[Stringa]$username,[Stringa]$password)
Per accedere alle risorse nel cluster verrà utilizzato "Invoke-RestMethod" con i parametri appropriati. Questo metodo accetta diversi parametri, ad esempio una stringa URI, un corpo (utilizzato per un POST), intestazioni e così via. Il codice seguente creerà le informazioni di intestazione necessarie e l'URL di base per l'accesso:
# Codificare l'intestazione di autorizzazione di base e create baseurl
$EncodedAuthorization = [System.Text.Encoding]::UTF8. GetBytes($username + ':' + $password)
$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"
$baseurl = 'https://' + $isilonip +":8080"
In questo esempio si accede alle quote. Aggiungerlo all'URL di base per creare l'URI finale che passeremo a "Invoke-RestMethod". Se si esamina la documentazione PAPI, si noterà che è possibile accedere a una raccolta di risorse nel seguente formato:"/platform/1/<namespace>/<collection-name>". Se ad esempio si desidera ottenere la raccolta di object che rappresentano tutte le quote definite nel cluster, è necessario ottenere "/platform/1/quota/quotas".
$resourceurl = "/platform/1/quota/quotas"
$uri = $baseurl + $resourceurl
Ora chiamiamo Invoke-RestMethod e quindi si accede all'object restituito che contiene la raccolta delle quote:
$ISIObject = Invoke-RestMethod -Uri $url -Headers $headers -Method Get
$ISIObject.quotas
$ISIObject.quotas
Ecco un esempio di output dello script:
È disponibile un elenco di tutte le quote e delle relative proprietà definite nel cluster. Utilizzando questo metodo, PSv3 converte automaticamente l'output JSON in object.
Corpo script:
####### #######
Creato: 18/09/2013 di Jeremy Smith, EMC NAS Specialist Central Division
# Modified:
#
#
# ps_isilon_get_quotas_via_papi.ps1 - ottenere tutte le quote su un cluster
Isilon# Nota: È necessario disporre di OneFS 7.0.2 o versioni successive per utilizzare in modo ottimale PAPI e l'accesso HTTP deve essere abilitato nel cluster.
#
# PARAMETERS
#
# -isilonip = node IP
# -username
# -password
# -path = /ifs percorso della directory contenente le directory che necessitano di quote
# -quoatasize = dimensione dei byte delle quote (es. "500000")
#
#
# EXAMPLE
# .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 10.10.10.1 -user root -password P@ssword1
# #
##### ######
Accetta parametri
di input Param([Stringa]$isilonip,[Stringa]$username,[Stringa]$password)
# Con un certificato predefinito, normalmente viene visualizzato un errore di certificato (codice da blogs.msdn.com)
add-type @"
utilizzando System.Net;
utilizzo di System.Security.Cryptography.X509Certificates;
TrustAll di classe pubblica: ICertificatePolicy {
public TrustAll() {}
public booleanl CheckValidationResult(
ServicePoint sPoint, X509Certificate cert,
WebRequest req, int problem) {
return true;
}
}
"@
[System.Net.ServicePointManager]:CertificatePolicy = new-object TrustAll
#if i parametri corretti non vengono superati e uscire dopo un messaggio
se (!( $isilonip -e $username -and $password )) {
write "failed to specify parameters";
scrittura "Esempio: .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 192.168.1.2 -username root -password p@ssw0rd1" ;
exit
}
# Codificare l'intestazione di autorizzazione di base e create baseurl
$EncodedAuthorization = [System.Text.Encoding]::UTF8. GetBytes($username + ':' + $password)
$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"}
$baseurl = 'https://' + $isilonip +":8080"
# Ottieni tutte le quote
definite $resourceurl = "/platform/1/quota/quotas"
$uri = $baseurl + $resourceurl
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
$ISIObject.quotas
Creato: 18/09/2013 di Jeremy Smith, EMC NAS Specialist Central Division
# Modified:
#
#
# ps_isilon_get_quotas_via_papi.ps1 - ottenere tutte le quote su un cluster
Isilon# Nota: È necessario disporre di OneFS 7.0.2 o versioni successive per utilizzare in modo ottimale PAPI e l'accesso HTTP deve essere abilitato nel cluster.
#
# PARAMETERS
#
# -isilonip = node IP
# -username
# -password
# -path = /ifs percorso della directory contenente le directory che necessitano di quote
# -quoatasize = dimensione dei byte delle quote (es. "500000")
#
#
# EXAMPLE
# .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 10.10.10.1 -user root -password P@ssword1
# #
##### ######
Accetta parametri
di input Param([Stringa]$isilonip,[Stringa]$username,[Stringa]$password)
# Con un certificato predefinito, normalmente viene visualizzato un errore di certificato (codice da blogs.msdn.com)
add-type @"
utilizzando System.Net;
utilizzo di System.Security.Cryptography.X509Certificates;
TrustAll di classe pubblica: ICertificatePolicy {
public TrustAll() {}
public booleanl CheckValidationResult(
ServicePoint sPoint, X509Certificate cert,
WebRequest req, int problem) {
return true;
}
}
"@
[System.Net.ServicePointManager]:CertificatePolicy = new-object TrustAll
#if i parametri corretti non vengono superati e uscire dopo un messaggio
se (!( $isilonip -e $username -and $password )) {
write "failed to specify parameters";
scrittura "Esempio: .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 192.168.1.2 -username root -password p@ssw0rd1" ;
exit
}
# Codificare l'intestazione di autorizzazione di base e create baseurl
$EncodedAuthorization = [System.Text.Encoding]::UTF8. GetBytes($username + ':' + $password)
$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"}
$baseurl = 'https://' + $isilonip +":8080"
# Ottieni tutte le quote
definite $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
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。