Isilon: Usando o PowerShell com a API da plataforma – Noções básicas
Summary: Este artigo explica como se conectar a um cluster usando o PowerShell e a 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/d
Cause
n/d
Resolution
Nota: Este tópico faz parte do Isilon SDK - Isilon Info Hub.
Introdução
Com a introdução da nova API de plataforma RESTful (PAPI), agora há uma maneira muito mais fácil e elegante de automatizar e gerenciar clusters do Isilon usando o PowerShell. Este artigo explicará as noções básicas sobre como se conectar a um cluster usando o PowerShell e o PAPI.
É altamente recomendável que você faça download e leia o guia de referência PAPI para sua versão do OneFS aqui.
Como o PAPI fornece acesso ao cluster via REST, você pode manipular recursos usando métodos HTTP, como GET, POST, PUT e DELETE. As representações de objetos e coleções são trocadas como documentos formatados por JSON. Para usar o PAPI, você precisará habilitar o HTTP no cluster fazendo log-in na WebUI e navegando até: Protocolos>Configurações http>Habilite HTTP.
se você não tiver o PowerShell v3, faça download e instale o.NET Framework versão 4 aqui.
Em seguida, faça download e instale a estrutura de gerenciamento apropriada do v3 aqui.
# Accept input parameters
Param([String]$isilonip,[String]$username,[String]$password)
Para acessar os recursos do cluster, vamos usar o "Invoke-RestMethod" com os parâmetros apropriados. Esse método utiliza vários parâmetros, como uma string de URI, um corpo (usado para um POST), cabeçalhos etc. O seguinte código criará as informações de cabeçalho de que precisamos e a URL base para acesso:
# Codificar cabeçalho de autorização básica e criar baseurl
$EncodedAuthorization = [System.Text.Encoding]::UTF8. GetBytes ($username + ':' + $password)
$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"
$baseurl = 'https://' + $isilonip +":8080"
Neste exemplo, estamos acessando cotas. Adicione-o à URL base para criar o URI final que passaremos para "Invoke-RestMethod". Se você observar a documentação da PAPI, verá que um conjunto de recursos é acessado no seguinte formato "/platform/1/<namespace>/<collection-name>". Se, por exemplo, quisermos obter o conjunto de objetos que representam todas as cotas definidas no cluster, precisamos obter "/platform/1/quota/quotas".
$resourceurl = "/platform/1/quota/quota/quotas"
$uri = $baseurl + $resourceurl
Agora, chamamos Invoke-RestMethod e, em seguida, acessamos o objeto retornado que contém a coleta de cotas:
Este é um exemplo da saída do script:
há uma lista de todas as cotas e suas propriedades definidas no cluster. Usando esse método, o PSv3 converte automaticamente a saída JSON em objetos.
Corpo do script:
Introdução
Com a introdução da nova API de plataforma RESTful (PAPI), agora há uma maneira muito mais fácil e elegante de automatizar e gerenciar clusters do Isilon usando o PowerShell. Este artigo explicará as noções básicas sobre como se conectar a um cluster usando o PowerShell e o PAPI.
É altamente recomendável que você faça download e leia o guia de referência PAPI para sua versão do OneFS aqui.
Como o PAPI fornece acesso ao cluster via REST, você pode manipular recursos usando métodos HTTP, como GET, POST, PUT e DELETE. As representações de objetos e coleções são trocadas como documentos formatados por JSON. Para usar o PAPI, você precisará habilitar o HTTP no cluster fazendo log-in na WebUI e navegando até: Protocolos>Configurações http>Habilite HTTP.
PowerShell v3
O PowerShell v3 tem métodos integrados que simplificam o acesso RESTful. Você pode verificar sua versão atual do PowerShell analisando o valor $PSVersionTable:
se você não tiver o PowerShell v3, faça download e instale o.NET Framework versão 4 aqui.
Em seguida, faça download e instale a estrutura de gerenciamento apropriada do v3 aqui.
Conectando-se ao cluster
O script abaixo aceita parâmetros para um endereço IP ou hostname do Isilon, um nome de usuário e uma senha:# Accept input parameters
Param([String]$isilonip,[String]$username,[String]$password)
Para acessar os recursos do cluster, vamos usar o "Invoke-RestMethod" com os parâmetros apropriados. Esse método utiliza vários parâmetros, como uma string de URI, um corpo (usado para um POST), cabeçalhos etc. O seguinte código criará as informações de cabeçalho de que precisamos e a URL base para acesso:
# Codificar cabeçalho de autorização básica e criar baseurl
$EncodedAuthorization = [System.Text.Encoding]::UTF8. GetBytes ($username + ':' + $password)
$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"
$baseurl = 'https://' + $isilonip +":8080"
Neste exemplo, estamos acessando cotas. Adicione-o à URL base para criar o URI final que passaremos para "Invoke-RestMethod". Se você observar a documentação da PAPI, verá que um conjunto de recursos é acessado no seguinte formato "/platform/1/<namespace>/<collection-name>". Se, por exemplo, quisermos obter o conjunto de objetos que representam todas as cotas definidas no cluster, precisamos obter "/platform/1/quota/quotas".
$resourceurl = "/platform/1/quota/quota/quotas"
$uri = $baseurl + $resourceurl
Agora, chamamos Invoke-RestMethod e, em seguida, acessamos o objeto retornado que contém a coleta de cotas:
$ISIObject = Invoke-RestMethod -Uri $url -Headers $headers -Method Get
$ISIObject.quotas
$ISIObject.quotas
Este é um exemplo da saída do script:
há uma lista de todas as cotas e suas propriedades definidas no cluster. Usando esse método, o PSv3 converte automaticamente a saída JSON em objetos.
Corpo do script:
####### ###########
#
Criado: 18/09/2013 por Jeremy Smith, especialista em NAS da EMC Divisão central
nº Modificado:
#
#
# ps_isilon_get_quotas_via_papi.ps1 - obtenha todas as cotas em um cluster
do Isilon# Nota: Você precisa estar no OneFS 7.0.2 ou superior para aproveitar o PAPI e o acesso HTTP deve estar habilitado no cluster.
Nº
# PARAMETERS
#
# -isilonip = node IP
# -username
# -password
# -path = /ifs directory path contendo os diretórios que precisam de quotas
# -quoatasize = tamanho dos bytes de cota (ex.: "500000")
#
#
# EXAMPLE
# .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 10.10.10.1 -user root -password P@ssword1
# #
####### #########
Aceite os parâmetros
de entrada Param([String]$isilonip,[String]$username,[String]$password)
# Com um certificado padrão, normalmente você verá um erro cert (código da blogs.msdn.com)
add-type @"
using System.Net;
usando System.Security.Cryptography.X509Certificates;
TrustAll da classe pública: ICertificatePolicy {
public TrustAll() {}
public bool CheckValidationResult(
ServicePoint sPoint, X509Certificate cert,
WebRequest req, int problem) {
return true;
}
}
"@
[System.Net.ServicePointManager]::CertificatePolicy = new-object TrustAll
#if os parâmetros corretos não foram aprovados
, nós saimos após uma mensagem se (!) $isilonip -and $username -and $password )) {
gravação "failed to specify parameters";
escreva "Exemplo: .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 192.168.1.2 -username root -password p@ssw0rd1";
exit
}
# Codificar cabeçalho de autorização básica e criar baseurl
$EncodedAuthorization = [System.Text.Encoding]::UTF8. GetBytes ($username + ':' + $password)
$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"}
$baseurl = 'https://' + $isilonip +":8080"
# Obtenha todas as cotas definidas
$resourceurl = "/platform/1/quota/quota/quotas"
$uri = $baseurl + $resourceurl
$ISIObject = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get
$ISIObject.quotas
#
Criado: 18/09/2013 por Jeremy Smith, especialista em NAS da EMC Divisão central
nº Modificado:
#
#
# ps_isilon_get_quotas_via_papi.ps1 - obtenha todas as cotas em um cluster
do Isilon# Nota: Você precisa estar no OneFS 7.0.2 ou superior para aproveitar o PAPI e o acesso HTTP deve estar habilitado no cluster.
Nº
# PARAMETERS
#
# -isilonip = node IP
# -username
# -password
# -path = /ifs directory path contendo os diretórios que precisam de quotas
# -quoatasize = tamanho dos bytes de cota (ex.: "500000")
#
#
# EXAMPLE
# .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 10.10.10.1 -user root -password P@ssword1
# #
####### #########
Aceite os parâmetros
de entrada Param([String]$isilonip,[String]$username,[String]$password)
# Com um certificado padrão, normalmente você verá um erro cert (código da blogs.msdn.com)
add-type @"
using System.Net;
usando System.Security.Cryptography.X509Certificates;
TrustAll da classe pública: ICertificatePolicy {
public TrustAll() {}
public bool CheckValidationResult(
ServicePoint sPoint, X509Certificate cert,
WebRequest req, int problem) {
return true;
}
}
"@
[System.Net.ServicePointManager]::CertificatePolicy = new-object TrustAll
#if os parâmetros corretos não foram aprovados
, nós saimos após uma mensagem se (!) $isilonip -and $username -and $password )) {
gravação "failed to specify parameters";
escreva "Exemplo: .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 192.168.1.2 -username root -password p@ssw0rd1";
exit
}
# Codificar cabeçalho de autorização básica e criar baseurl
$EncodedAuthorization = [System.Text.Encoding]::UTF8. GetBytes ($username + ':' + $password)
$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"}
$baseurl = 'https://' + $isilonip +":8080"
# Obtenha todas as cotas definidas
$resourceurl = "/platform/1/quota/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.