Isilon: PowerShell gebruiken met de Platform API - De basis
Summary: In dit artikel wordt uitgelegd hoe u verbinding kunt maken met een cluster met behulp van PowerShell en de 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
n.v.t.
Cause
n.v.t.
Resolution
Opmerking: Dit onderwerp is onderdeel van de Isilon SDK - Isilon Info Hub.
Inleiding
Met de introductie van de nieuwe RESTful platform API (PAPI) is er nu een veel eenvoudigere en elegantere manier om Isilon clusters te automatiseren en te beheren met behulp van PowerShell. In dit artikel worden de basisbeginselen uitgelegd voor het maken van verbinding met een cluster met behulp van PowerShell en de PAPI.
Het wordt ten zeerste aanbevolen om de PAPI-naslaggids voor uw versie van OneFS hier te downloaden en te lezen.
Omdat de PAPI toegang biedt tot het cluster via REST, kunt u bronnen manipuleren met behulp van HTTP-methoden zoals GET, POST, PUT en DELETE. De weergaven van objecten en verzamelingen worden omgeruild als op JSON geformatteerde documenten. Als u de PAPI wilt gebruiken, moet u HTTP op het cluster inschakelen door u aan te melden bij de WebUI en te navigeren naar: Protocollen>HTTP-instellingen>Schakel HTTP in.
Als u powershell v3 niet hebt, kunt u .NET Framework versie 4 hier downloaden en installeren.
Download en installeer hier het juiste v3-beheerframework.
# Accept input parameters
Param([String]$isilonip,[String]$username,[String]$password)
Om toegang te krijgen tot de bronnen op het cluster, gebruiken we 'Invoke-RestMethod' met de juiste parameters. Bij deze methode worden verschillende parameters gebruikt, zoals een URI-tekenreeks, een body (gebruikt voor een POST), headers, enz. De volgende code maakt de header-informatie die we nodig hebben en de basis-URL voor toegang:
# Codeer de header voor basisautorisatie en maak baseurl
$EncodedAuthorization = [System.Text.Encoding]::UTF8. GetBytes ($username + ':' + $password)
$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"
$baseurl = 'https://' + $isilonip +":8080"
In dit voorbeeld hebben we toegang tot quota. Voeg deze toe aan de basis-URL om de laatste URI te maken die we doorgeven aan "Invoke-RestMethod". Als u de PAPI-documentatie bekijkt, ziet u dat een verzameling bronnen wordt geopend in de volgende indeling "/platform/1/<namespace>/<collection-name>". Als we bijvoorbeeld objecten willen verzamelen die alle quota weergeven die zijn gedefinieerd op het cluster, moeten we "/platform/1/quota/quota" krijgen.
$resourceurl = "/platform/1/quota/quota"
$uri = $baseurl + $resourceurl
Nu bellen we Invoke-RestMethod en vervolgens toegang tot het geretourneerde object dat de quotaverzameling bevat:
Hier is een voorbeeld van de scriptuitvoer:
Er is een lijst met alle quota en hun eigenschappen gedefinieerd op het cluster. Met behulp van deze methode converteert PSv3 automatisch de JSON-uitvoer naar objecten.
Scripttekst:
Inleiding
Met de introductie van de nieuwe RESTful platform API (PAPI) is er nu een veel eenvoudigere en elegantere manier om Isilon clusters te automatiseren en te beheren met behulp van PowerShell. In dit artikel worden de basisbeginselen uitgelegd voor het maken van verbinding met een cluster met behulp van PowerShell en de PAPI.
Het wordt ten zeerste aanbevolen om de PAPI-naslaggids voor uw versie van OneFS hier te downloaden en te lezen.
Omdat de PAPI toegang biedt tot het cluster via REST, kunt u bronnen manipuleren met behulp van HTTP-methoden zoals GET, POST, PUT en DELETE. De weergaven van objecten en verzamelingen worden omgeruild als op JSON geformatteerde documenten. Als u de PAPI wilt gebruiken, moet u HTTP op het cluster inschakelen door u aan te melden bij de WebUI en te navigeren naar: Protocollen>HTTP-instellingen>Schakel HTTP in.
PowerShell v3
PowerShell v3 heeft ingebouwde methoden die RESTful-toegang vereenvoudigen. U kunt uw huidige PowerShell-versie controleren door te kijken naar de $PSVersionTable waarde:
Als u powershell v3 niet hebt, kunt u .NET Framework versie 4 hier downloaden en installeren.
Download en installeer hier het juiste v3-beheerframework.
Verbinding maken met het cluster
Het onderstaande script accepteert parameters voor een Isilon IP-adres of hostnaam, een gebruikersnaam en wachtwoord:# Accept input parameters
Param([String]$isilonip,[String]$username,[String]$password)
Om toegang te krijgen tot de bronnen op het cluster, gebruiken we 'Invoke-RestMethod' met de juiste parameters. Bij deze methode worden verschillende parameters gebruikt, zoals een URI-tekenreeks, een body (gebruikt voor een POST), headers, enz. De volgende code maakt de header-informatie die we nodig hebben en de basis-URL voor toegang:
# Codeer de header voor basisautorisatie en maak baseurl
$EncodedAuthorization = [System.Text.Encoding]::UTF8. GetBytes ($username + ':' + $password)
$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"
$baseurl = 'https://' + $isilonip +":8080"
In dit voorbeeld hebben we toegang tot quota. Voeg deze toe aan de basis-URL om de laatste URI te maken die we doorgeven aan "Invoke-RestMethod". Als u de PAPI-documentatie bekijkt, ziet u dat een verzameling bronnen wordt geopend in de volgende indeling "/platform/1/<namespace>/<collection-name>". Als we bijvoorbeeld objecten willen verzamelen die alle quota weergeven die zijn gedefinieerd op het cluster, moeten we "/platform/1/quota/quota" krijgen.
$resourceurl = "/platform/1/quota/quota"
$uri = $baseurl + $resourceurl
Nu bellen we Invoke-RestMethod en vervolgens toegang tot het geretourneerde object dat de quotaverzameling bevat:
$ISIObject = Invoke-RestMethod -Uri $url -Headers $headers -Method Get
$ISIObject.quotas
$ISIObject.quotas
Hier is een voorbeeld van de scriptuitvoer:
Er is een lijst met alle quota en hun eigenschappen gedefinieerd op het cluster. Met behulp van deze methode converteert PSv3 automatisch de JSON-uitvoer naar objecten.
Scripttekst:
###################
Gemaakt: 18-09-2013 door Smith, EMC NAS Specialist Central Division
# Gewijzigd:
#
#
# ps_isilon_get_quotas_via_papi.ps1 - Ontvang alle quota op een Isilon cluster
# Opmerking: U moet oneFS 7.0.2 of hoger hebben om de PAPI en HTTP Access te kunnen gebruiken op het cluster.
#
# PARAMETERS
#
# -isilonip = node IP
# -username
# -password
# -path = /ifs directory path with the directory 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
# #
####################
Accepteer invoerparameters
Param([String]$isilonip,[String]$username,[String]$password)
# Met een standaardcertificaat ziet u normaal gesproken een cert-fout (code van blogs.msdn.com)
add-type @"
using System.Net;
met behulp van System.Security.Cryptography.X509Certificates;
public class 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 the correct parameters were not passed we exit after a message
if (!( $isilonip -and $username -and $password )) {
write "failed to specify parameters";
schrijf "Voorbeeld: .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 192.168.1.2 -username root -password p@ssw0rd1" ;
exit
}
# Codeer de header voor basisautorisatie en maak baseurl
$EncodedAuthorization = [System.Text.Encoding]::UTF8. GetBytes ($username + ':' + $password)
$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"}
$baseurl = 'https://' + $isilonip +":8080"
# Get all defined quotas
$resourceurl = "/platform/1/quota/quotas"
$uri = $baseurl + $resourceurl
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
$ISIObject.quotas
Gemaakt: 18-09-2013 door Smith, EMC NAS Specialist Central Division
# Gewijzigd:
#
#
# ps_isilon_get_quotas_via_papi.ps1 - Ontvang alle quota op een Isilon cluster
# Opmerking: U moet oneFS 7.0.2 of hoger hebben om de PAPI en HTTP Access te kunnen gebruiken op het cluster.
#
# PARAMETERS
#
# -isilonip = node IP
# -username
# -password
# -path = /ifs directory path with the directory 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
# #
####################
Accepteer invoerparameters
Param([String]$isilonip,[String]$username,[String]$password)
# Met een standaardcertificaat ziet u normaal gesproken een cert-fout (code van blogs.msdn.com)
add-type @"
using System.Net;
met behulp van System.Security.Cryptography.X509Certificates;
public class 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 the correct parameters were not passed we exit after a message
if (!( $isilonip -and $username -and $password )) {
write "failed to specify parameters";
schrijf "Voorbeeld: .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 192.168.1.2 -username root -password p@ssw0rd1" ;
exit
}
# Codeer de header voor basisautorisatie en maak baseurl
$EncodedAuthorization = [System.Text.Encoding]::UTF8. GetBytes ($username + ':' + $password)
$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"}
$baseurl = 'https://' + $isilonip +":8080"
# Get all defined quotas
$resourceurl = "/platform/1/quota/quotas"
$uri = $baseurl + $resourceurl
$ISIObject = Invoke-RestMethod -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 Dec 2023
Version: 6
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.