Ісілон: Використання Powershell з API платформи - основи

摘要: У цій статті пояснюється, як підключитися до кластера за допомогою Powershell і PAPI (API платформи).

本文章適用於 本文章不適用於 本文無關於任何特定產品。 本文未識別所有產品版本。

症狀

н/д

原因

н/д

解析度

Примітка. Ця тема є частиною 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

Powershell v3 має вбудовані методи, які спрощують доступ до RESTful. Ви можете перевірити свою поточну версію Powershell, подивившись на значення $PSVersionTable:

SLN319397_en_US__1i_isilon_powershell-2

Якщо у вас немає 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

Ось приклад виведення скрипту:
SLN319397_en_US__3i_isilon_powershell-3

SLN319397_en_US__2i_isilon_powershell

Існує список усіх квот та їх властивостей, визначених у кластері. Використовуючи цей метод, 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
 

受影響的產品

Isilon, PowerScale OneFS, Isilon Platform API
文章屬性
文章編號: 000177716
文章類型: Solution
上次修改時間: 20 1月 2026
版本:  7
向其他 Dell 使用者尋求您問題的答案
支援服務
檢查您的裝置是否在支援服務的涵蓋範圍內。