Isilon: Usando o PowerShell com a API da plataforma – Noções básicas
摘要: Este artigo explica como se conectar a um cluster usando o PowerShell e a PAPI (PLATFORM API).
本文适用于
本文不适用于
本文并非针对某种特定的产品。
本文并非包含所有产品版本。
症状
n/d
原因
n/d
解决方案
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
受影响的产品
Isilon, PowerScale OneFS, Isilon Platform API文章属性
文章编号: 000177716
文章类型: Solution
上次修改时间: 11 12月 2023
版本: 6
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。