chiamata RELIANOID API REST da Powershell

Visualizza categorie

chiamata RELIANOID API REST da Powershell

10 min letto

Modi di gestione RELIANOID API da Windows #

Gestire e automatizzare da remoto a RELIANOID Load Balancer può essere eseguito in modo efficace utilizzando noid-cli, un programma con interfaccia a riga di comando basato su Perl. noid-cli è progettato per effettuare chiamate API direttamente dalla riga di comando, semplificando attività come la configurazione di server virtuali, il monitoraggio dello stato del sistema e la regolazione delle impostazioni di bilanciamento del carico. Questo strumento fornisce una serie di comandi predefiniti che astraggono le complessità delle interazioni API, consentendo agli amministratori di eseguire rapidamente operazioni senza la necessità di costruire manualmente richieste HTTP. La sua facilità d'uso e l'integrazione con lo scripting della shell lo rendono una scelta pratica per la manutenzione ordinaria e le regolazioni rapide in un ambiente terminale.

D'altra parte, la programmazione a Script di PowerShell con Invoca-RiposoMethod per gestire le chiamate API al RELIANOID Load Balancer offre maggiore flessibilità e potenziale di automazione. Gli script PowerShell possono automatizzare sequenze complesse di interazioni API, gestire dati dinamici e integrarsi con altri servizi e strumenti basati su Windows. Usando Invoca-RiposoMethod, gli amministratori possono creare script di automazione personalizzati che soddisfano esattamente le loro esigenze operative, come orchestrare procedure di failover, eseguire aggiornamenti in blocco o integrare la gestione del bilanciamento del carico in flussi di lavoro di gestione del sistema più ampi. Questo metodo sfrutta tutta la potenza delle funzionalità di scripting di PowerShell, tra cui la gestione degli errori, la registrazione e la manipolazione avanzata dei dati, rendendolo ideale per attività di automazione sofisticate e scenari di integrazione.

Questo articolo descriverà le chiamate API utilizzando il metodo Powershell.

Utilizzo di Powershell per effettuare chiamate API #

Effettuare una chiamata a un'API utilizzando PowerShell per automatizzare i sistemi implica sfruttare il Invoca-RiposoMethod cmdlet, che semplifica l'invio di richieste HTTP e HTTPS ai servizi Web RESTful. Questo cmdlet consente l'interazione con le API specificando l'URL dell'endpoint, il metodo HTTP (GET, POST, PUT, DELETE), le intestazioni (come i token di autorizzazione) e il corpo della richiesta (in genere in formato JSON). In questo modo è possibile recuperare, creare, aggiornare o eliminare risorse nel sistema di destinazione. Gli script PowerShell possono automatizzare attività ripetitive, come la gestione di macchine virtuali, la configurazione di dispositivi di rete o il recupero degli stati del sistema, migliorando l'efficienza e la coerenza operativa.

Per iniziare, in genere definirai l'endpoint API e le eventuali credenziali necessarie. Ad esempio, potresti utilizzare l'autenticazione di base o una chiave API nelle intestazioni. Successivamente, a seconda dell'operazione API, potrebbe essere necessario preparare un payload JSON per le richieste POST o PUT, che può essere facilmente creato e convertito da oggetti PowerShell utilizzando il metodo Converti in Json cmdlet. Una volta elaborata e inviata la richiesta, Invoca-RiposoMethod elabora la risposta, che puoi manipolare o utilizzare ulteriormente nelle attività successive all'interno dello script. Questo processo semplificato rende PowerShell un potente strumento per amministratori di sistema e sviluppatori che mirano ad automatizzare e integrare vari sistemi e servizi tramite API.

Prerequisiti per abilitare l'automazione API remota #

Per effettuare chiamate API da PowerShell da gestire RELIANOID Load Balancer, devono essere soddisfatti diversi prerequisiti:

Abilitazione delle autorizzazioni API e creazione di una chiave API #

Innanzitutto, devi abilitare le autorizzazioni API per l'account utente che effettuerà le chiamate. Ciò comporta l'accesso alla GUI Web del sistema di bilanciamento del carico e la navigazione verso Sistema> Utente. In questa sezione puoi configurare gli account utente e assegnare le autorizzazioni API. Crea o seleziona un account utente e genera una chiave API, che verrà utilizzata per autenticare le chiamate API. Se utilizzi utenti RBAC (Role-Based Access Control), assicurati che i loro ruoli includano le autorizzazioni necessarie per interagire con l'API. Questa chiave API è essenziale per autenticare e autorizzare le richieste API dai tuoi script PowerShell.

Per ulteriori informazioni, fare riferimento a questo articolo https://www.relianoid.com/resources/knowledge-base/system-enterprise-edition-v8-administration-guide/system-user/ .

Identificazione dell'endpoint API #

In secondo luogo, è necessario identificare l'endpoint API corretto per la connessione al sistema di bilanciamento del carico. L'endpoint API in genere include l'URL di base del sistema di bilanciamento del carico seguito da percorsi specifici per diverse funzionalità. Nel caso di una configurazione di bilanciamento del carico in cluster, è fondamentale utilizzare un indirizzo IP condiviso per l'endpoint API. Questo indirizzo IP condiviso garantisce che la chiamata API sia sempre indirizzata al nodo master, indipendentemente da quale nodo stia attualmente fungendo da master. L'utilizzo dell'IP condiviso previene i problemi in cui la chiamata API potrebbe essere effettuata a un nodo standby, garantendo che tutte le configurazioni e le operazioni vengano applicate in modo coerente al nodo master attivo.

Esempi di API PowerShell #

L'opzione SkipCertificateCheck non è stato possibile riconoscerlo nelle versioni precedenti di Powershell. Se questo è il tuo caso, definisci questa opzione all'inizio dello script PowerShell:

[System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $true }

Inoltre, sarà necessario aggiungere la seguente riga nei nostri script PowerShell per evitare l’errore “Invoke-RestMethod: la connessione sottostante è stata chiusa: si è verificato un errore imprevisto durante una ricezione".

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12

Ottenere i dettagli della fattoria #

Questo script esegue una richiesta GET per recuperare informazioni su una farm specifica nel file RELIANOID Bilanciatore del carico.

Prerequisiti

  • sostituire con la tua chiave API effettiva.
  • sostituire <RELIANOID_SERVER> con l'effettivo indirizzo del server del tuo RELIANOID Bilanciatore del carico.
  • sostituire con l'azienda agricola vera e propria.
  • Assicurati di avere abilitate le autorizzazioni API necessarie.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12 # Definisci variabili $apiKey = " " $server = "RELIANOID_SERVER>" $nomefarm = " " # Definisce l'URL dell'endpoint API $apiUrl = "https://${server}:444/api/v4.0/api.cgi/farms/$farmName" # Effettua la chiamata API utilizzando Invoke-RestMethod $response = Invoke -RestMethod -Uri $apiUrl -Method Get -Headers @{ "API_KEY" = $apiKey } -SkipCertificateCheck # Visualizza la risposta $response

Spiegazione

1. variabili:

  • $apiKey: la tua chiave API.
  • $server: L'indirizzo del tuo RELIANOID Bilanciatore del carico.
  • $farmName: Il nome dell'azienda agricola di cui desideri recuperare informazioni.

2. URL dell'endpoint API:

  • $apiUrl: costruito utilizzando l'indirizzo del server e il nome della farm.

3. Metodo Invoke-Rest:

  • -Uri $apiUrl: specifica l'endpoint API.
  • -Metodo Ottieni: specifica il metodo HTTP GET.
  • -Intestazioni @{ "API_KEY" = $apiKey }: aggiunge la chiave API alle intestazioni della richiesta.
  • -Salta il controllo del certificato: Salta la convalida del certificato SSL (equivalente a -k in curl). Ciò è utile per i test o quando il server utilizza un certificato autofirmato.

4. Produzione:
La risposta dalla chiamata API è archiviata nel file $response variabile e quindi inviato alla console.

Si prega di fare riferimento all'Apidoc ufficiale per avere maggiori informazioni su questo bando https://www.relianoid.com/apidoc/v4.0/#retrieve-farm-by-name

Aggiunta di un nuovo backend in Farm #

Questo script esegue una richiesta POST per aggiungere un nuovo backend a un servizio specifico all'interno di una farm sul bilanciatore del carico Relianoid.

Prerequisiti

  • sostituire con la tua chiave API effettiva.
  • sostituire <RELIANOID_SERVER> con l'effettivo indirizzo del server del tuo RELIANOID Bilanciatore del carico.
  • sostituire con l'azienda agricola vera e propria.
  • sostituire con il servizio HTTP a cui verrà aggiunto il backend.
  • sostituire con l'IP del nuovo backend.
  • sostituire con il PORT del nuovo backend.
  • Assicurati di avere abilitate le autorizzazioni API necessarie.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12 # Definisci variabili $apiKey = " " $server = "RELIANOID_SERVER>" $nomefarm = " "$nomeservizio=" " # Definisce l'URL dell'endpoint API $apiUrl = "https://${server}:444/api/v4.0/api.cgi/farms/$farmName/services/$serviceName/backends" # Definisce il corpo della richiesta $ corpo richiesta = @{ ip = " "porto = peso = 1 priorità = 1 } | ConvertTo-Json # Effettua la chiamata API utilizzando Invoke-RestMethod $response = Invoke-RestMethod -Uri $apiUrl -Method Post -Headers @{ "Content-Type" = "application/json" "API_KEY" = $apiKey } -Body $ requestBody -SkipCertificateCheck # Emette la risposta $response

Spiegazione

1. variabili:

  • $apiKey: la tua chiave API.
  • $server: L'indirizzo del tuo RELIANOID Bilanciatore del carico.
  • $farmName: il nome della farm a cui vuoi aggiungere un nuovo backend.
  • $serviceName: il nome del servizio all'interno della farm in cui verrà aggiunto il backend.

2. URL dell'endpoint API:

  • $apiUrl: costruito utilizzando l'indirizzo del server, il nome della farm e il nome del servizio.

3. Ente di richiesta:

  • $requestBody: contiene il payload JSON con i dettagli del server backend. Viene convertito in formato JSON utilizzando Converti in Json.

4. Metodo Invoke-Rest:

  • -Uri $apiUrl: specifica l'endpoint API.
  • -Metodo Postale: specifica il metodo HTTP POST.
  • -Intestazioni @{ "Content-Type" = "application/json"; "API_KEY" = $apiKey }: aggiunge il Content-Type and api_key alle intestazioni della richiesta.
  • -Corpo $requestBody: specifica il payload JSON per la richiesta POST.
  • -Salta il controllo del certificato: Salta la convalida del certificato SSL (equivalente a -k in curl). Ciò è utile per i test o quando il server utilizza un certificato autofirmato.

5. Produzione:
La risposta dalla chiamata API è archiviata nel file $response variabile e quindi inviato alla console.

Si prega di fare riferimento all'Apidoc ufficiale per avere maggiori informazioni su questo bando https://www.relianoid.com/apidoc/v4.0/#create-a-new-backend

Abilita il backend in modalità manutenzione #

Questo script esegue una richiesta PUT per impostare un server backend in modalità di manutenzione su RELIANOID Bilanciatore del carico.

Prerequisiti

  • sostituire con la tua chiave API effettiva.
  • sostituire <RELIANOID_SERVER> con l'effettivo indirizzo del server del tuo RELIANOID Bilanciatore del carico.
  • sostituire con l'azienda agricola vera e propria.
  • sostituire con il servizio HTTP dove il backend verrà messo in manutenzione.
  • sostituire con l'ID del backend per modificare la modalità di manutenzione.
  • Assicurati di avere abilitate le autorizzazioni API necessarie.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12 # Definisci variabili $apiKey = " " $server = "RELIANOID_SERVER>" $nomefarm = " " $NomeServizio = " "$backendId = # Definisce l'URL dell'endpoint API $apiUrl = "https://${server}:444/api/v4.0/api.cgi/farms/$farmName/services/$serviceName/backends/$backendId/maintenance" # Definisce il corpo della richiesta $requestBody = @{ action = "maintenance" mode = "drain" } | ConvertTo-Json # Effettua la chiamata API utilizzando Invoke-RestMethod $response = Invoke-RestMethod -Uri $apiUrl -Method Put -Headers @{ "Content-Type" = "application/json" "API_KEY" = $apiKey } -Body $ requestBody -SkipCertificateCheck # Emette la risposta $response

Spiegazione

1. variabili:

  • $apiKey: la tua chiave API.
  • $server: L'indirizzo del tuo RELIANOID Bilanciatore del carico.
  • $farmName: il nome della farm in cui viene aggiunto il backend da mettere in manutenzione.
  • $serviceName: il nome del servizio all'interno della farm in cui sarà in manutenzione il backend.
  • $backendId: l'ID del backend da mettere in modalità manutenzione.

2. URL dell'endpoint API:

  • $apiUrl: costruito utilizzando l'indirizzo del server, il nome della farm e il nome del servizio.

3. Ente di richiesta:

  • $requestBody: contiene il payload JSON con l'azione e la modalità per impostare il backend in modalità di manutenzione. Viene convertito in formato JSON utilizzando Converti in Json.

4. Metodo Invoke-Rest:

  • -Uri $apiUrl: specifica l'endpoint API.
  • -Metodo Metti: specifica il metodo HTTP PUT.
  • -Intestazioni @{ "Content-Type" = "application/json"; "API_KEY" = $apiKey }: aggiunge il Content-Type and api_key alle intestazioni della richiesta.
  • -Corpo $requestBody: specifica il payload JSON per la richiesta PUT.
  • -Salta il controllo del certificato: Salta la convalida del certificato SSL (equivalente a -k in curl). Ciò è utile per i test o quando il server utilizza un certificato autofirmato.

5. Produzione:
La risposta dalla chiamata API è archiviata nel file $response variabile e quindi inviato alla console.

Si prega di fare riferimento all'Apidoc ufficiale per avere maggiori informazioni su questo bando https://www.relianoid.com/apidoc/v4.0/#backend-in-maintenance

Ulteriore documentazione API #

Per informazioni più dettagliate sulle chiamate API disponibili per la gestione del RELIANOID Load Balancer, puoi fare riferimento alla documentazione API ufficiale all'indirizzo RELIANOID Documentazione API. Questa risorsa completa fornisce descrizioni dettagliate di ciascun endpoint API, inclusi i metodi HTTP richiesti, i parametri di richiesta e i formati di risposta.

La documentazione è strutturata per aiutarti a comprendere come interagire con i vari aspetti del sistema di bilanciamento del carico, come la gestione di farm, servizi e backend, nonché il monitoraggio dello stato e delle prestazioni del sistema. Ogni chiamata API è accompagnata da esempi e spiegazioni per guidarti attraverso il processo di creazione delle tue richieste e gestione delle risposte. Si tratta di una risorsa essenziale per gli amministratori di sistema e gli sviluppatori che desiderano automatizzare e semplificare le attività di gestione del bilanciamento del carico utilizzando l'API.

📄 Scarica questo documento in formato PDF #

    EMAIL: *

    Sviluppato da BetterDocs