Isilon: Uso de PowerShell con la API de plataforma: aspectos básicos
Summary: En este artículo, se explica cómo conectarse a un clúster mediante PowerShell y PAPI (API de plataforma).
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/a
Cause
n/a
Resolution
Nota: Este tema es parte del SDK de Isilon: centro de información de Isilon.
Introducción
Con la introducción de la nueva API de plataforma RESTful (PAPI), ahora existe una manera mucho más fácil y elegante de automatizar y administrar los clústeres de Isilon mediante PowerShell. En este artículo, se explican los conceptos básicos sobre cómo conectarse a un clúster mediante PowerShell y PAPI.
Se recomienda encarecidamente que descargue y lea la guía de referencia de PAPI para su versión de OneFS aquí.
Debido a que PAPI proporciona acceso al clúster a través de REST, puede manipular los recursos mediante métodos HTTP como GET, POST, PUT y DELETE. Las representaciones de objetos y recopilaciones se intercambian como documentos con formato JSON. Para usar PAPI, deberá habilitar HTTP en el clúster iniciando sesión en la interfaz del usuario web y navegando a: Protocolos>Configuración de> HTTP Habilite HTTP.
si no tiene PowerShell v3, descargue e instale.NET Framework versión 4 que se encuentra aquí.
A continuación, descargue e instale el marco de trabajo de administración de v3 adecuado aquí.
# Accept input parameters
Param([String]$isilonip,[String]$username,[String]$password)
Para acceder a los recursos en el clúster, utilizaremos "Invoke-Rest Rack" con los parámetros adecuados. Este método toma varios parámetros, como una cadena URI, un cuerpo (utilizado para una POST), encabezados, etc. El siguiente código creará la información de encabezado que necesitamos y la URL base para el acceso:
# Codificar el encabezado de autorización básica y crear baseurl
$EncodedAuthorization = [System.Text.Encoding]::UTF8. GetBytes($username + ':' + $password)
$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"
$baseurl = 'https://' + $isilonip +":8080"
En este ejemplo, estamos accediendo a cuotas. Agréguelo a la URL base para crear el URI final que pasaremos a "Invoke-Rest Sku". Si observa la documentación de PAPI, verá que se accede a una recopilación de recursos en el siguiente formato "/platform/1/<namespace>/<collection-name>". Si, por ejemplo, queremos obtener la recopilación de objetos que representan todas las cuotas definidas en el clúster, necesitamos obtener "/platform/1/quota/quotas".
$resourceurl = "/platform/1/quota/quotas"
$uri = $baseurl + $resourceurl
Ahora llamamos Invoke-RestAssist y, a continuación, accedemos al objeto devuelto que contiene la recopilación de cuotas:
Este es un ejemplo de la salida del script:
hay una lista de todas las cuotas y sus propiedades definidas en el clúster. Con este método, PSv3 convierte automáticamente la salida JSON en objetos.
Cuerpo del script:
Introducción
Con la introducción de la nueva API de plataforma RESTful (PAPI), ahora existe una manera mucho más fácil y elegante de automatizar y administrar los clústeres de Isilon mediante PowerShell. En este artículo, se explican los conceptos básicos sobre cómo conectarse a un clúster mediante PowerShell y PAPI.
Se recomienda encarecidamente que descargue y lea la guía de referencia de PAPI para su versión de OneFS aquí.
Debido a que PAPI proporciona acceso al clúster a través de REST, puede manipular los recursos mediante métodos HTTP como GET, POST, PUT y DELETE. Las representaciones de objetos y recopilaciones se intercambian como documentos con formato JSON. Para usar PAPI, deberá habilitar HTTP en el clúster iniciando sesión en la interfaz del usuario web y navegando a: Protocolos>Configuración de> HTTP Habilite HTTP.
PowerShell v3
PowerShell v3 tiene métodos incorporados que simplifican el acceso RESTful. Puede comprobar la versión actual de PowerShell observando el valor de $PSVersionTable:
si no tiene PowerShell v3, descargue e instale.NET Framework versión 4 que se encuentra aquí.
A continuación, descargue e instale el marco de trabajo de administración de v3 adecuado aquí.
Conexión al clúster
El siguiente script acepta parámetros para una dirección IP o un nombre de host de Isilon, un nombre de usuario y una contraseña:# Accept input parameters
Param([String]$isilonip,[String]$username,[String]$password)
Para acceder a los recursos en el clúster, utilizaremos "Invoke-Rest Rack" con los parámetros adecuados. Este método toma varios parámetros, como una cadena URI, un cuerpo (utilizado para una POST), encabezados, etc. El siguiente código creará la información de encabezado que necesitamos y la URL base para el acceso:
# Codificar el encabezado de autorización básica y crear baseurl
$EncodedAuthorization = [System.Text.Encoding]::UTF8. GetBytes($username + ':' + $password)
$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"
$baseurl = 'https://' + $isilonip +":8080"
En este ejemplo, estamos accediendo a cuotas. Agréguelo a la URL base para crear el URI final que pasaremos a "Invoke-Rest Sku". Si observa la documentación de PAPI, verá que se accede a una recopilación de recursos en el siguiente formato "/platform/1/<namespace>/<collection-name>". Si, por ejemplo, queremos obtener la recopilación de objetos que representan todas las cuotas definidas en el clúster, necesitamos obtener "/platform/1/quota/quotas".
$resourceurl = "/platform/1/quota/quotas"
$uri = $baseurl + $resourceurl
Ahora llamamos Invoke-RestAssist y, a continuación, accedemos al objeto devuelto que contiene la recopilación de cuotas:
$ISIObject = Invoke-Rest $url -Uri -Headers $headers -Method Get
$ISIObject.quotas
$ISIObject.quotas
Este es un ejemplo de la salida del script:
hay una lista de todas las cuotas y sus propiedades definidas en el clúster. Con este método, PSv3 convierte automáticamente la salida JSON en objetos.
Cuerpo del script:
###### #######
Creado: 18/09/2013 por Jeremy Smith, ESPECIALISTA en NAS de EMC División
central n.º modificado:
#
#
# ps_isilon_get_quotas_via_papi.ps1: obtenga todas las cuotas en un clúster
Isilon# Nota: Debe estar en OneFS 7.0.2 o superior para aprovechar papi y el acceso HTTP debe estar habilitado en el clúster.
#
# PARAMETERS
#
# -isilonip = node IP
# -username
# -password
# -path = ruta de directorio /ifs que contiene los directorios que necesitan cuotas
# -quoatasize = tamaño de bytes de cuota (por ejemplo "500000")
#
#
# EXAMPLE
# .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 10.10.10.1 -user root -password P@ssword1
# #
#
###### #########
Accept parámetros
de entrada Param([Cadena]$isilonip,[Cadena]$username,[Cadena]$password)
# Con un certificado predeterminado, normalmente vería un error de certificado (código de blogs.msdn.com)
add-type @"
mediante System.Net;
mediante System.Security.Cryptography.X509Certificates;
clase pública 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 no se aprobaron los parámetros correctos, abandonamos después de un mensaje
si (!( $isilonip -and $username -and $password )) {
write "failed to specify parameters";
escriba "Ejemplo: .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 192.168.1.2 -username root -password p@ssw0rd1";
exit
}
# Codificar el encabezado de autorización básica y crear baseurl
$EncodedAuthorization = [System.Text.Encoding]::UTF8. GetBytes($username + ':' + $password)
$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"}
$baseurl = 'https://' + $isilonip +":8080"
# Obtenga todas las cuotas definidas
$resourceurl = "/platform/1/quota/quotas"
$uri = $baseurl + $resourceurl
$ISIObject = Invoke-Rest If -Uri $uri -Headers $headers -Method Get
$ISIObject.quotas
Creado: 18/09/2013 por Jeremy Smith, ESPECIALISTA en NAS de EMC División
central n.º modificado:
#
#
# ps_isilon_get_quotas_via_papi.ps1: obtenga todas las cuotas en un clúster
Isilon# Nota: Debe estar en OneFS 7.0.2 o superior para aprovechar papi y el acceso HTTP debe estar habilitado en el clúster.
#
# PARAMETERS
#
# -isilonip = node IP
# -username
# -password
# -path = ruta de directorio /ifs que contiene los directorios que necesitan cuotas
# -quoatasize = tamaño de bytes de cuota (por ejemplo "500000")
#
#
# EXAMPLE
# .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 10.10.10.1 -user root -password P@ssword1
# #
#
###### #########
Accept parámetros
de entrada Param([Cadena]$isilonip,[Cadena]$username,[Cadena]$password)
# Con un certificado predeterminado, normalmente vería un error de certificado (código de blogs.msdn.com)
add-type @"
mediante System.Net;
mediante System.Security.Cryptography.X509Certificates;
clase pública 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 no se aprobaron los parámetros correctos, abandonamos después de un mensaje
si (!( $isilonip -and $username -and $password )) {
write "failed to specify parameters";
escriba "Ejemplo: .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 192.168.1.2 -username root -password p@ssw0rd1";
exit
}
# Codificar el encabezado de autorización básica y crear baseurl
$EncodedAuthorization = [System.Text.Encoding]::UTF8. GetBytes($username + ':' + $password)
$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"}
$baseurl = 'https://' + $isilonip +":8080"
# Obtenga todas las cuotas definidas
$resourceurl = "/platform/1/quota/quotas"
$uri = $baseurl + $resourceurl
$ISIObject = Invoke-Rest If -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 ديسمبر 2023
Version: 6
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.