Ісілон: Використання 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 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
Affected Products
Isilon, PowerScale OneFS, Isilon Platform APIArticle 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.