Ісілон: Використання 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 тут.
# Прийняти вхідні параметри
Param([Рядок]$isilonip,[Рядок]$username,[Рядок]$password)
Для доступу до ресурсів на кластері скористаємося "Invoke-RestMethod" з відповідними параметрами. Цей метод приймає кілька параметрів, таких як рядок URI, тіло (використовується для POST), заголовки тощо. Наступний код створить потрібну нам інформацію про заголовок і базову URL-адресу для доступу:
# Закодувати базовий заголовок авторизації та створити baseurl
$EncodedAuthorization = [System.Text.Encoding]::UTF8. GetBytes($username + ':' + $password)$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)$headers = @{"Authorization"="Базовий $($EncodedPassword)
"$baseurl
= 'https://' + $isilonip +":8080"
У цьому прикладі ми звертаємося до квот. Додайте його до базової URL-адреси, щоб створити остаточний URI, який ми передамо до "Invoke-RestMethod". Якщо ви подивитеся на документацію PAPI, то побачите, що доступ до колекції ресурсів здійснюється у такому форматі: «/platform/1/namespace>/<<collection-name>». Якщо, наприклад, ми хочемо отримати колекцію об'єктів, що представляють всі квоти, визначені в кластері, нам потрібно отримати "/platform/1/quota/quotas".
$resourceurl = "/platform/1/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 v3
Powershell v3 має вбудовані методи, які спрощують доступ до RESTful. Ви можете перевірити свою поточну версію Powershell, подивившись на значення $PSVersionTable:
Якщо у вас немає Powershell v3, завантажте та встановіть .NET Framework версії 4, який можна знайти тут.
Потім завантажте та встановіть відповідний фреймворк керування v3 тут.
Підключення до кластера
Наведений нижче скрипт приймає параметри для IP-адреси або імені хоста Isilon, імені користувача та пароля:# Прийняти вхідні параметри
Param([Рядок]$isilonip,[Рядок]$username,[Рядок]$password)
Для доступу до ресурсів на кластері скористаємося "Invoke-RestMethod" з відповідними параметрами. Цей метод приймає кілька параметрів, таких як рядок URI, тіло (використовується для POST), заголовки тощо. Наступний код створить потрібну нам інформацію про заголовок і базову URL-адресу для доступу:
# Закодувати базовий заголовок авторизації та створити baseurl
$EncodedAuthorization = [System.Text.Encoding]::UTF8. GetBytes($username + ':' + $password)$EncodedPassword = [System.Convert]::ToBase64String($EncodedAuthorization)$headers = @{"Authorization"="Базовий $($EncodedPassword)
"$baseurl
= 'https://' + $isilonip +":8080"
У цьому прикладі ми звертаємося до квот. Додайте його до базової URL-адреси, щоб створити остаточний URI, який ми передамо до "Invoke-RestMethod". Якщо ви подивитеся на документацію PAPI, то побачите, що доступ до колекції ресурсів здійснюється у такому форматі: «/platform/1/namespace>/<<collection-name>». Якщо, наприклад, ми хочемо отримати колекцію об'єктів, що представляють всі квоти, визначені в кластері, нам потрібно отримати "/platform/1/quota/quotas".
$resourceurl = "/platform/1/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), спеціаліст з електромагнітної сумісності NAS, Центральний відділ
# Змінено:
#
##
ps_isilon_get_quotas_via_papi.ps1 - отримати всі квоти на кластері
Isilon# Примітка: Щоб використовувати PAPI, потрібно мати OneFS 7.0.2 або новішу версію, а на кластері має бути ввімкнено HTTP-доступ.
## ПАРАМЕТРИ
## -isilonip = вузол IP
# -ім'я_
користувача# -пароль
# -path = /ifs шлях до каталогу, що містить каталоги, які потребують квот# -quoatasize = розмір квотних байтів (наприклад, "500000")
# ## ПРИКЛАД
# .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 10.10.10.1 -user root -password P@ssword1
# #
########################################################################################################################################
# Прийняти вхідні параметри
Param([String]$isilonip,[String]$username,[String]$password)
# З сертифікатом за замовчуванням ви зазвичай бачите помилку cert (код з blogs.msdn.com)
add-type @"
using 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 -і $username -і $password )) {
пишемо "не вдалося вказати параметри";
напишіть "Приклад: .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 192.168.1.2 -ім'я користувача root -пароль p@ssw0rd1" ;
exit
}
# Закодувати базовий заголовок авторизації та створити 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), спеціаліст з електромагнітної сумісності NAS, Центральний відділ
# Змінено:
#
##
ps_isilon_get_quotas_via_papi.ps1 - отримати всі квоти на кластері
Isilon# Примітка: Щоб використовувати PAPI, потрібно мати OneFS 7.0.2 або новішу версію, а на кластері має бути ввімкнено HTTP-доступ.
## ПАРАМЕТРИ
## -isilonip = вузол IP
# -ім'я_
користувача# -пароль
# -path = /ifs шлях до каталогу, що містить каталоги, які потребують квот# -quoatasize = розмір квотних байтів (наприклад, "500000")
# ## ПРИКЛАД
# .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 10.10.10.1 -user root -password P@ssword1
# #
########################################################################################################################################
# Прийняти вхідні параметри
Param([String]$isilonip,[String]$username,[String]$password)
# З сертифікатом за замовчуванням ви зазвичай бачите помилку cert (код з blogs.msdn.com)
add-type @"
using 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 -і $username -і $password )) {
пишемо "не вдалося вказати параметри";
напишіть "Приклад: .\ps_isilon_get_quotas_via_papi.ps1 -isilonip 192.168.1.2 -ім'я користувача root -пароль p@ssw0rd1" ;
exit
}
# Закодувати базовий заголовок авторизації та створити 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.