管理方法 RELIANOID Windows からの API #
リモートでの管理と自動化 RELIANOID ロードバランサは、以下を使用して効果的に実行できます。 noid-cliPerl ベースのコマンドライン インターフェイス プログラム。 noid-cli は、コマンド ラインから直接 API 呼び出しを行うように設計されており、仮想サーバーの構成、システム ステータスの監視、負荷分散設定の調整などのタスクを簡素化します。このツールは、API のやり取りの複雑さを抽象化する定義済みコマンドのセットを提供するため、管理者は HTTP 要求を手動で構築することなく、操作を迅速に実行できます。使いやすさとシェル スクリプトとの統合により、ターミナル環境での日常的なメンテナンスや迅速な調整に実用的な選択肢となります。
一方、プログラミングでは PowerShellスクリプト RestMethod の呼び出し API呼び出しを管理する RELIANOID ロードバランサーは、より高い柔軟性と自動化の可能性を提供します。PowerShellスクリプトは、APIインタラクションの複雑なシーケンスを自動化し、動的なデータを処理して、他のWindowsベースのサービスやツールと統合することができます。 RestMethod の呼び出し管理者は、フェイルオーバー手順のオーケストレーション、一括更新の実行、ロード バランサ管理をより広範なシステム管理ワークフローに統合するなど、運用上のニーズを正確に満たすカスタム自動化スクリプトを作成できます。この方法では、エラー処理、ログ記録、高度なデータ操作など、PowerShell のスクリプト機能を最大限に活用できるため、高度な自動化タスクや統合シナリオに最適です。
この記事では、Powershell メソッドを使用した API 呼び出しについて説明します。
Powershell を使用して API 呼び出しを行う #
PowerShellを使用してAPIを呼び出してシステムを自動化するには、 RestMethod の呼び出し コマンドレットは、RESTful Web サービスへの HTTP および HTTPS 要求の送信を簡素化します。このコマンドレットを使用すると、エンドポイント URL、HTTP メソッド (GET、POST、PUT、DELETE)、ヘッダー (認証トークンなど)、および要求本文 (通常は JSON 形式) を指定して、API と対話できます。これにより、ターゲット システム上のリソースを取得、作成、更新、または削除できます。PowerShell スクリプトを使用すると、仮想マシンの管理、ネットワーク デバイスの構成、システム ステータスの取得などの反復タスクを自動化できるため、運用の効率と一貫性が向上します。
まず、APIエンドポイントと必要な認証情報を定義します。たとえば、ヘッダーに基本認証やAPIキーを使用する場合があります。次に、API操作に応じて、POSTまたはPUTリクエストのJSONペイロードを準備する必要があります。これは、 Json に変換 コマンドレット。リクエストが作成されて送信されると、 RestMethod の呼び出し 応答を処理し、それをさらに操作したり、スクリプト内の後続のタスクで使用したりできます。この合理化されたプロセスにより、PowerShell は、API を介してさまざまなシステムやサービスを自動化および統合することを目指すシステム管理者や開発者にとって強力なツールになります。
リモート API 自動化を有効にするための前提条件 #
PowerShellからAPI呼び出しを行って管理するには RELIANOID ロード バランサでは、いくつかの前提条件を満たす必要があります。
API 権限の有効化と API キーの作成 #
まず、呼び出しを行うユーザーアカウントのAPI権限を有効にする必要があります。これには、ロードバランサーのWeb GUIにアクセスし、 システム > ユーザーこのセクションでは、ユーザー アカウントを構成し、API 権限を割り当てることができます。ユーザー アカウントを作成または選択し、API 呼び出しの認証に使用される API キーを生成します。ロールベースのアクセス制御 (RBAC) ユーザーを使用している場合は、そのロールに API を操作するために必要な権限が含まれていることを確認してください。この API キーは、PowerShell スクリプトからの API 要求を認証および承認するために不可欠です。
詳細については、この記事を参照してください。 https://www.relianoid.com/resources/knowledge-base/system-enterprise-edition-v8-administration-guide/system-user/ .
APIエンドポイントの識別 #
次に、ロード バランサーに接続するための正しい API エンドポイントを識別する必要があります。API エンドポイントには通常、ロード バランサーのベース URL と、それに続くさまざまな機能の特定のパスが含まれます。クラスター化されたロード バランサー セットアップの場合、API エンドポイントに共有 IP アドレスを使用することが重要です。この共有 IP アドレスにより、現在どのノードがマスターとして機能しているかに関係なく、API 呼び出しが常にマスター ノードに向けられるようになります。共有 IP を使用すると、API 呼び出しがスタンバイ ノードに対して行われる問題が回避され、すべての構成と操作がアクティブなマスター ノードに一貫して適用されるようになります。
Powershell API の例 #
オプション 証明書チェックをスキップ 古いバージョンの Powershell では認識されませんでした。その場合は、Powershell スクリプトの先頭でこのオプションを定義してください。
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $true }
さらに、エラーを回避するために、Powershellスクリプトに次の行を追加する必要があります。Invoke-RestMethod: 基礎となる接続が閉じられました: 受信時に予期しないエラーが発生しました"
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12
ファームの詳細を取得する #
このスクリプトはGETリクエストを実行して、特定のファームに関する情報を取得します。 RELIANOID ロードバランサー。
前提条件
- 交換する 実際の API キーを使用します。
- 交換する <RELIANOID_サーバー> 実際のサーバーアドレスと RELIANOID ロードバランサー。
- 交換する 実際の農場で。
- 必要な API 権限が有効になっていることを確認してください。
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12 # 変数を定義します $apiKey = " " $server = "RELIANOID_SERVER>" $farmName = " " # API エンドポイント URL を定義します $apiUrl = "https://${server}:444/api/v4.0/api.cgi/farms/$farmName" # Invoke-RestMethod を使用して API 呼び出しを行います $response = Invoke-RestMethod -Uri $apiUrl -Method Get -Headers @{ "API_KEY" = $apiKey } -SkipCertificateCheck # レスポンスを出力します $response
説明
1. 変数:
$apiKey: API キー。$server: あなたの住所 RELIANOID ロードバランサー。$farmName: 情報を取得するファームの名前。
2. API エンドポイント URL:
$apiUrl: サーバー アドレスとファーム名を使用して構築されます。
3. 呼び出しレストメソッド:
- -ウリ
$apiUrl: API エンドポイントを指定します。 - -メソッド取得: HTTP GET メソッドを指定します。
- -ヘッダー
@{ "API_KEY" = $apiKey }: リクエスト ヘッダーに API キーを追加します。 - -証明書チェックをスキップ: SSL 証明書の検証をスキップします (curl の -k に相当)。これは、テストの場合や、サーバーが自己署名証明書を使用する場合に役立ちます。
4. 出力:
API呼び出しからの応答は、 $response 変数に代入され、コンソールに出力されます。
この呼び出しの詳細については、公式のApidocを参照してください。 https://www.relianoid.com/apidoc/v4.0/#retrieve-farm-by-name
ファームに新しいバックエンドを追加する #
このスクリプトは、POST リクエストを実行して、Relianoid ロード バランサー上のファーム内の特定のサービスに新しいバックエンドを追加します。
前提条件
- 交換する 実際の API キーを使用します。
- 交換する <RELIANOID_サーバー> 実際のサーバーアドレスと RELIANOID ロードバランサー。
- 交換する 実際の農場で。
- 交換する バックエンドが追加される HTTP サービスを使用します。
- 交換する 新しいバックエンドの IP を使用します。
- 交換する 新しいバックエンドのポートを使用します。
- 必要な API 権限が有効になっていることを確認してください。
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12 # 変数を定義します $apiKey = " " $server = "RELIANOID_SERVER>" $farmName = " " $サービス名 = " " # API エンドポイント URL を定義します $apiUrl = "https://${server}:444/api/v4.0/api.cgi/farms/$farmName/services/$serviceName/backends" # リクエスト本文を定義します $requestBody = @{ ip = " " ポート = weight = 1 priority = 1 } | ConvertTo-Json # Invoke-RestMethod を使用して API 呼び出しを実行します $response = Invoke-RestMethod -Uri $apiUrl -Method Post -Headers @{ "Content-Type" = "application/json" "API_KEY" = $apiKey } -Body $requestBody -SkipCertificateCheck # レスポンスを出力します $response
説明
1. 変数:
$apiKey: API キー。$server: あなたの住所 RELIANOID ロードバランサー。$farmName: 新しいバックエンドを追加するファームの名前。$serviceName: バックエンドが追加されるファーム内のサービスの名前。
2. API エンドポイント URL:
$apiUrl: サーバー アドレス、ファーム名、サービス名を使用して構築されます。
3. リクエスト本文:
$requestBody: バックエンドサーバーの詳細を含むJSONペイロードが含まれます。これは、 Json に変換.
4. 呼び出しレストメソッド:
- -ウリ
$apiUrl: API エンドポイントを指定します。 - -メソッドポスト: HTTP POST メソッドを指定します。
- -ヘッダー
@{ "Content-Type" = "application/json"; "API_KEY" = $apiKey }: 追加します コンテンツタイプ および API_KEY リクエスト ヘッダーに追加します。 - -体
$requestBody: POST リクエストの JSON ペイロードを指定します。 - -証明書チェックをスキップ: SSL 証明書の検証をスキップします (curl の -k に相当)。これは、テストの場合や、サーバーが自己署名証明書を使用する場合に役立ちます。
5. 出力:
API呼び出しからの応答は、 $response 変数に代入され、コンソールに出力されます。
この呼び出しの詳細については、公式のApidocを参照してください。 https://www.relianoid.com/apidoc/v4.0/#create-a-new-backend
メンテナンスモードでバックエンドを有効にする #
このスクリプトはPUTリクエストを実行し、バックエンドサーバーをメンテナンスモードに設定します。 RELIANOID ロードバランサー。
前提条件
- 交換する 実際の API キーを使用します。
- 交換する <RELIANOID_サーバー> 実際のサーバーアドレスと RELIANOID ロードバランサー。
- 交換する 実際の農場で。
- 交換する バックエンドがメンテナンスされる HTTP サービス。
- 交換する メンテナンス モードを変更するには、バックエンドの ID を使用します。
- 必要な API 権限が有効になっていることを確認してください。
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12 # 変数を定義します $apiKey = " " $server = "RELIANOID_SERVER>" $farmName = " " $サービス名 = " " $backendId = # API エンドポイント URL を定義します $apiUrl = "https://${server}:444/api/v4.0/api.cgi/farms/$farmName/services/$serviceName/backends/$backendId/maintenance" # リクエスト本文を定義します $requestBody = @{ action = "maintenance" mode = "drain" } | ConvertTo-Json # Invoke-RestMethod を使用して API 呼び出しを行います $response = Invoke-RestMethod -Uri $apiUrl -Method Put -Headers @{ "Content-Type" = "application/json" "API_KEY" = $apiKey } -Body $requestBody -SkipCertificateCheck # レスポンスを出力します $response
説明
1. 変数:
$apiKey: API キー。$server: あなたの住所 RELIANOID ロードバランサー。$farmName: メンテナンスするバックエンドが追加されるファームの名前。$serviceName: バックエンドがメンテナンスされるファーム内のサービスの名前。$backendId: メンテナンス モードにするバックエンドの ID。
2. API エンドポイント URL:
$apiUrl: サーバー アドレス、ファーム名、サービス名を使用して構築されます。
3. リクエスト本文:
$requestBody: バックエンドをメンテナンスモードに設定するためのアクションとモードを含むJSONペイロードが含まれます。これは、 Json に変換.
4. 呼び出しレストメソッド:
- -ウリ
$apiUrl: API エンドポイントを指定します。 - -メソッドPut: HTTP PUT メソッドを指定します。
- -ヘッダー
@{ "Content-Type" = "application/json"; "API_KEY" = $apiKey }: 追加します コンテンツタイプ および API_KEY リクエスト ヘッダーに追加します。 - -体
$requestBody: PUT リクエストの JSON ペイロードを指定します。 - -証明書チェックをスキップ: SSL 証明書の検証をスキップします (curl の -k に相当)。これは、テストの場合や、サーバーが自己署名証明書を使用する場合に役立ちます。
5. 出力:
API呼び出しからの応答は、 $response 変数に代入され、コンソールに出力されます。
この呼び出しの詳細については、公式のApidocを参照してください。 https://www.relianoid.com/apidoc/v4.0/#backend-in-maintenance
さらなるAPIドキュメント #
管理に使用できるAPI呼び出しの詳細については、 RELIANOID ロードバランサーについては、公式APIドキュメントを参照してください。 RELIANOID APIドキュメントこの包括的なリソースでは、必要な HTTP メソッド、リクエスト パラメータ、応答形式など、各 API エンドポイントの詳細な説明を提供します。
ドキュメントは、ファーム、サービス、バックエンドの管理、システムの状態とパフォーマンスの監視など、ロード バランサーのさまざまな側面を操作する方法を理解できるように構成されています。各 API 呼び出しには、リクエストの作成と応答の処理のプロセスをガイドする例と説明が付属しています。これは、API を使用してロード バランサー管理タスクを自動化および合理化したいと考えているシステム管理者と開発者にとって不可欠なリソースです。