Isilon: Använda PowerShell med plattforms-API – grunderna
摘要: I den här artikeln beskrivs hur du ansluter till ett kluster med powershell och PAPI (platform API).
本文适用于
本文不适用于
本文并非针对某种特定的产品。
本文并非包含所有产品版本。
症状
Ej tillämpligt
原因
Ej tillämpligt
解决方案
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.
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.
# 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:
Här är ett exempel på skriptutdata:
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:
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:
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
$ISIObject.quotas
Här är ett exempel på skriptutdata:
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
#
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
受影响的产品
Isilon, PowerScale OneFS, Isilon Platform API文章属性
文章编号: 000177716
文章类型: Solution
上次修改时间: 11 12月 2023
版本: 6
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。