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.

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:

SLN319397_en_US__1i_isilon_powershell-2

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

Este é um exemplo da saída do script:
SLN319397_en_US__3i_isilon_powershell-3

SLN319397_en_US__2i_isilon_powershell

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.

# 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
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。