Isilon. Использование PowerShell с API платформы — основные моменты

Summary: В этой статье объясняется, как подключиться к кластеру с помощью Powershell и PAPI (платформенного 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

н/д

Cause

н/д

Resolution

Примечание. Этот раздел входит в состав Isilon SDK — Isilon Info Hub.

Введение
С появлением нового API-интерфейса платформы RESTful (PAPI) теперь гораздо проще и более простой способ автоматизации и администрирования кластеров Isilon с помощью Powershell. В этой статье описываются основные сведения о подключении к кластеру с помощью Powershell и PAPI.

Настоятельно рекомендуется загрузить и прочитать справочное руководство ПО PAPI для вашей версии OneFS здесь.

Так как PAPI предоставляет доступ к кластеру с помощью REST, можно управлять ресурсами с помощью методов HTTP, таких как GET, POST, PUT и DELETE. Представления объектов и коллекций обменяются как документы в формате JSON. Чтобы использовать PAPI, необходимо включить HTTP в кластере, войдите в веб-интерфейс пользователя и выполните следующие действия: Протоколы>Параметры> HTTP Включите HTTP.

PowerShell версии 3

PowerShell v3 имеет встроенные методы, которые упрощают доступ к RESTful. Можно проверить текущую версию Powershell, просмотрев значение $PSVersionTable:

SLN319397_en_US__1i_isilon_powershell-2

Если у вас нет загрузок и установки PowerShell v3 и не установлена платформа .NET Framework 4, перейдите по этой ссылке.
Затем загрузите и установите соответствующую концепцию управления v3 здесь.

Подключение к кластеру

Приведенный ниже сценарий принимает параметры ДЛЯ IP-адреса или имени хоста Isilon, имени пользователя и пароля:

# Accept input parameters
Param([String]$isilonip,[String]$username,[String]$password)

Для доступа к ресурсам в кластере мы будем использовать параметр Invoke-RestMethod с соответствующими параметрами. Этот метод занимает несколько параметров, например строку URI, текст (используется для POST), заголовки и т. д. Следующий код будет создавать необходимую информацию о заголовоке и базовый URL-адрес для доступа:

# Закодировать заголовок базовой авторизации и создать baseurl
$EncodedAuthorization = [System.Text.Encoding]::UTF8. GetBytes ($username + «:» + $password)
$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"$baseurl
= "https://" + $isilonip +":8080"

В данном примере мы доступ к квотам. Добавьте его в базовый URL-адрес, чтобы создать окончательный URI, который будет передан на «Invoke-RestMethod». При просмотре документации ПО PAPI вы увидите, что доступ к коллекции ресурсов выполняется в следующем формате: "/platform/1/<namespace>/<collection-name>". Если, например, мы хотим получить коллекцию объектов, представляющую все квоты, определенные в кластере, нам нужно получить «/platform/1/quota/quota/quotas».

$resourceurl = "/platform/1/quota/quota/quotas"
$uri = $baseurl + $resourceurl

Теперь мы называем Invoke-RestMethod, а затем доступ к возвращенным объекту, который содержит коллекцию квот:
$ISIObject = Invoke-RestMethod -Uri $url -Headers $headers -Method Get
$ISIObject.quotas

Ниже приведен пример вывода сценария:
SLN319397_en_US__3i_isilon_powershell-3

SLN319397_en_US__2i_isilon_powershell

В кластере определяется список всех квот и их свойств. Используя этот метод, PSv3 автоматически преобразует выходные данные JSON в объекты.

Текст сценария:
###### #######

Создана: 18.09.2013 Джереми Смит (Jeremy Smith), специалист EMC NAS Specialist Central Division
# Изменен:

#
# ps_isilon_get_quotas_via_papi.ps1 — получите все квоты в кластере Isilon
# Примечание. Необходимо иметь версию OneFS 7.0.2 или более поздняя, чтобы в кластере должны быть включены доступ к PAPI и HTTP.
Количество
# PARAMETERS
#
# -isilonip = node IP
# -username
# -password
# -path = /ifs directory path,
содержащий каталоги, которым требуются квоты# -quoatasize = размер квоты байтов (например, «500000»)
#
#
# EXAMPLE
# .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 10.10.1 -user root -password P@ssword1
#

##########



Примите параметры ввода Param([String]$isilonip,[String]$username,[String]$password)


# С сертификатом по умолчанию обычно отображается cert-ошибка (код от blogs.msdn.com)
add-type @"с помощью
System.Net;
с помощью System.Security.Cryptography.X509Certificates;

    общедоступного класса 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 правильные
параметры не были пройдены, мы выйдите после сообщения, если (! $isilonip -and $username -and $password )) {
write "failed to specify parameters";
   запись «Пример: .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 192.168.1.2 -username root -password p@ssw0rd1» ;
   exit
}




# Encode basic authorization header and create baseurl
$EncodedAuthorization = [System.Text.Encoding]::UTF8. GetBytes ($username + «:»     + $password)
$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)
$headers = @{"Authorization"="Basic $($EncodedPassword)"}
$baseurl = "https://" + $isilonip +":8080"
 

#
Получить все определенные квоты $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 API
Article 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.