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

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

Bu makale şunlar için geçerlidir: Bu makale şunlar için geçerli değildir: Bu makale, belirli bir ürüne bağlı değildir. Bu makalede tüm ürün sürümleri tanımlanmamıştır.

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

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
 

Etkilenen Ürünler

Isilon, PowerScale OneFS, Isilon Platform API
Makale Özellikleri
Article Number: 000177716
Article Type: Solution
Son Değiştirme: 11 Ara 2023
Version:  6
Sorularınıza diğer Dell kullanıcılarından yanıtlar bulun
Destek Hizmetleri
Aygıtınızın Destek Hizmetleri kapsamında olup olmadığını kontrol edin.