Isilon. Использование PowerShell с API платформы — основные моменты
Zusammenfassung: В этой статье объясняется, как подключиться к кластеру с помощью Powershell и PAPI (платформенного API).
Dieser Artikel gilt für
Dieser Artikel gilt nicht für
Dieser Artikel ist nicht an ein bestimmtes Produkt gebunden.
In diesem Artikel werden nicht alle Produktversionen aufgeführt.
Symptome
н/д
Ursache
н/д
Lösung
Примечание. Этот раздел входит в состав 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 v3 и не установлена платформа .NET Framework 4, перейдите по этой ссылке.
Затем загрузите и установите соответствующую концепцию управления v3 здесь.
# 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, а затем доступ к возвращенным объекту, который содержит коллекцию квот:
Ниже приведен пример вывода сценария:
В кластере определяется список всех квот и их свойств. Используя этот метод, PSv3 автоматически преобразует выходные данные JSON в объекты.
Текст сценария:
Введение
С появлением нового 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:
Если у вас нет загрузок и установки 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
$ISIObject.quotas
Ниже приведен пример вывода сценария:
В кластере определяется список всех квот и их свойств. Используя этот метод, 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
Создана: 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
Betroffene Produkte
Isilon, PowerScale OneFS, Isilon Platform APIArtikeleigenschaften
Artikelnummer: 000177716
Artikeltyp: Solution
Zuletzt geändert: 11 Dez. 2023
Version: 6
Antworten auf Ihre Fragen erhalten Sie von anderen Dell NutzerInnen
Support Services
Prüfen Sie, ob Ihr Gerät durch Support Services abgedeckt ist.