het roepen RELIANOID API-REST van Powershell

Categorieën bekijken

het roepen RELIANOID API-REST van Powershell

10 min leestijd

Manieren om te beheren RELIANOID API van Windows #

Op afstand beheren en automatiseren a RELIANOID Load Balancer kan effectief worden gebruikt met behulp van noid-cli, een op Perl gebaseerd opdrachtregelinterfaceprogramma. noid-cli is ontworpen om API-aanroepen rechtstreeks vanaf de opdrachtregel te doen, waardoor taken zoals het configureren van virtuele servers, het bewaken van de systeemstatus en het aanpassen van de taakverdelingsinstellingen worden vereenvoudigd. Deze tool biedt een reeks vooraf gedefinieerde opdrachten die de complexiteit van API-interacties wegnemen, waardoor beheerders snel bewerkingen kunnen uitvoeren zonder handmatig HTTP-verzoeken te hoeven opstellen. Het gebruiksgemak en de integratie met shell-scripting maken het een praktische keuze voor routineonderhoud en snelle aanpassingen in een terminalomgeving.

Aan de andere kant, het programmeren van a PowerShell-script with Roep-RestMethod om API-oproepen naar de RELIANOID Load Balancer biedt meer flexibiliteit en automatiseringspotentieel. PowerShell-scripts kunnen complexe reeksen API-interacties automatiseren, dynamische gegevens verwerken en integreren met andere op Windows gebaseerde services en tools. Door het gebruiken van Roep-RestMethodkunnen beheerders aangepaste automatiseringsscripts maken die precies aan hun operationele behoeften voldoen, zoals het orkestreren van failover-procedures, het uitvoeren van bulkupdates of het integreren van load balancer-beheer in bredere systeembeheerworkflows. Deze methode maakt gebruik van de volledige kracht van de scriptmogelijkheden van PowerShell, inclusief foutafhandeling, logboekregistratie en geavanceerde gegevensmanipulatie, waardoor deze ideaal is voor geavanceerde automatiseringstaken en integratiescenario's.

In dit artikel worden de API-aanroepen beschreven met behulp van de Powershell-methode.

Powershell gebruiken om API-aanroepen te doen #

Als u een API aanroept met behulp van PowerShell om systemen te automatiseren, wordt gebruik gemaakt van de Roep-RestMethod cmdlet, wat het verzenden van HTTP- en HTTPS-verzoeken naar RESTful-webservices vereenvoudigt. Met deze cmdlet is interactie met API's mogelijk door de eindpunt-URL, de HTTP-methode (GET, POST, PUT, DELETE), headers (zoals autorisatietokens) en de hoofdtekst van het verzoek (meestal in JSON-indeling) op te geven. Door dit te doen, kunt u bronnen op het doelsysteem ophalen, maken, bijwerken of verwijderen. PowerShell-scripts kunnen repetitieve taken automatiseren, zoals het beheren van virtuele machines, het configureren van netwerkapparaten of het ophalen van systeemstatussen, waardoor de operationele efficiëntie en consistentie worden verbeterd.

Om te beginnen definieert u doorgaans het API-eindpunt en eventuele benodigde inloggegevens. U kunt bijvoorbeeld basisauthenticatie of een API-sleutel in de headers gebruiken. Vervolgens moet u, afhankelijk van de API-bewerking, mogelijk een JSON-payload voorbereiden voor POST- of PUT-aanvragen, die eenvoudig kan worden gemaakt en geconverteerd vanuit PowerShell-objecten met behulp van de ConverterenNaar-Json cmdlet. Zodra het verzoek is opgesteld en verzonden, Roep-RestMethod verwerkt het antwoord, dat u verder kunt manipuleren of gebruiken in volgende taken binnen uw script. Dit gestroomlijnde proces maakt PowerShell tot een krachtig hulpmiddel voor systeembeheerders en ontwikkelaars die verschillende systemen en services willen automatiseren en integreren via API's.

Vereisten om externe API-automatisering in te schakelen #

Om API-aanroepen vanuit PowerShell te beheren RELIANOID Load Balancer moet aan verschillende vereisten worden voldaan:

API-machtigingen inschakelen en een API-sleutel maken #

Ten eerste moet u API-machtigingen inschakelen voor het gebruikersaccount dat de aanroepen zal doen. Dit omvat toegang tot de web-GUI van de load balancer en het navigeren naar Systeem > Gebruiker. In deze sectie kunt u gebruikersaccounts configureren en API-machtigingen toewijzen. Maak of selecteer een gebruikersaccount en genereer een API-sleutel, die wordt gebruikt om de API-aanroepen te authenticeren. Als u gebruikers van Role-Based Access Control (RBAC) gebruikt, zorg er dan voor dat hun rollen over de benodigde machtigingen beschikken om met de API te communiceren. Deze API-sleutel is essentieel voor het verifiëren en autoriseren van de API-aanvragen van uw PowerShell-scripts.

Voor meer informatie verwijzen wij u naar dit artikel https://www.relianoid.com/resources/knowledge-base/system-enterprise-edition-v8-administration-guide/system-user/ .

Het API-eindpunt identificeren #

Ten tweede moet u het juiste API-eindpunt identificeren om verbinding te maken met de load balancer. Het API-eindpunt bevat doorgaans de basis-URL van uw load balancer, gevolgd door specifieke paden voor verschillende functionaliteiten. In het geval van een geclusterde load balancer-opstelling is het van cruciaal belang om een ​​gedeeld IP-adres te gebruiken voor het API-eindpunt. Dit gedeelde IP-adres zorgt ervoor dat de API-oproep altijd naar het masterknooppunt wordt geleid, ongeacht welk knooppunt momenteel als master fungeert. Het gebruik van het gedeelde IP-adres voorkomt problemen waarbij de API-aanroep naar een standby-knooppunt kan worden gedaan, zodat alle configuraties en bewerkingen consistent worden toegepast op het actieve hoofdknooppunt.

Powershell API-voorbeelden #

De optie CertificaatCheck overslaan kon niet worden herkend in oudere versies van Powershell. Als dit uw geval is, definieer dan deze optie aan het begin van uw Powershell-script:

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

Bovendien zal het nodig zijn om de volgende regel toe te voegen aan onze Powershell-scripts om de fout “Invoke-RestMethod: De onderliggende verbinding is gesloten: er is een onverwachte fout opgetreden bij het ontvangen'.

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

Boerderijgegevens ophalen #

Dit script voert een GET-verzoek uit om informatie op te halen over een specifieke boerderij in de RELIANOID Loadbalancer.

Voorwaarden

  • vervangen met uw daadwerkelijke API-sleutel.
  • vervangen <RELIANOID_SERVER> met het werkelijke serveradres van uw RELIANOID Loadbalancer.
  • vervangen met de eigenlijke boerderij.
  • Zorg ervoor dat de benodigde API-machtigingen zijn ingeschakeld.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12 # Variabelen definiëren $apiKey = " " $server = "RELIANOID_SERVER>" $farmName = " " # Definieer de API-eindpunt-URL $apiUrl = "https://${server}:444/api/v4.0/api.cgi/farms/$farmName" # Voer de API-aanroep uit met Invoke-RestMethod $response = Invoke -RestMethod -Uri $apiUrl -Method Get -Headers @{ "API_KEY" = $apiKey } -SkipCertificateCheck # Voer het antwoord uit $response

Uitleg

1. variabelen:

  • $apiKey: Uw API-sleutel.
  • $server: Het adres van uw RELIANOID Loadbalancer.
  • $farmName: De naam van de boerderij waarover u informatie wilt opvragen.

2. API-eindpunt-URL:

  • $apiUrl: opgebouwd met behulp van het serveradres en de boerderijnaam.

3. Invoke-RestMethode:

  • -Uri $apiUrl: Specificeert het API-eindpunt.
  • -Methode ophalen: Specificeert de HTTP GET-methode.
  • -Koppen @{ "API_KEY" = $apiKey }: Voegt de API-sleutel toe aan de aanvraagheaders.
  • -SkipCertificaatCheck: slaat SSL-certificaatvalidatie over (equivalent aan -k in krul). Dit is handig bij het testen of wanneer de server een zelfondertekend certificaat gebruikt.

4. Output:
Het antwoord van de API-aanroep wordt opgeslagen in de $response variabele en vervolgens uitgevoerd naar de console.

Raadpleeg de officiële Apidoc voor meer informatie over deze oproep https://www.relianoid.com/apidoc/v4.0/#retrieve-farm-by-name

Een nieuwe backend toevoegen in Farm #

Dit script voert een POST-aanvraag uit om een ​​nieuwe backend toe te voegen aan een specifieke service binnen een farm op de Relianoid-load balancer.

Voorwaarden

  • vervangen met uw daadwerkelijke API-sleutel.
  • vervangen <RELIANOID_SERVER> met het werkelijke serveradres van uw RELIANOID Loadbalancer.
  • vervangen met de eigenlijke boerderij.
  • vervangen met de HTTP-service waaraan de backend wordt toegevoegd.
  • vervangen met het IP-adres van de nieuwe backend.
  • vervangen met de poort van de nieuwe backend.
  • Zorg ervoor dat de benodigde API-machtigingen zijn ingeschakeld.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12 # Variabelen definiëren $apiKey = " " $server = "RELIANOID_SERVER>" $farmName = " " $serviceNaam = " " # Definieer de URL van het API-eindpunt $apiUrl = "https://${server}:444/api/v4.0/api.cgi/farms/$farmName/services/$serviceName/backends" # Definieer de hoofdtekst van het verzoek $ requestBody = @{ ip = " " poort = gewicht = 1 prioriteit = 1 } | ConvertTo-Json # Voer de API-aanroep uit met Invoke-RestMethod $response = Invoke-RestMethod -Uri $apiUrl -Method Post -Headers @{ "Content-Type" = "application/json" "API_KEY" = $apiKey } -Body $ requestBody -SkipCertificateCheck # Voer het antwoord $response uit

Uitleg

1. variabelen:

  • $apiKey: Uw API-sleutel.
  • $server: Het adres van uw RELIANOID Loadbalancer.
  • $farmName: De naam van de boerderij waaraan u een nieuwe backend wilt toevoegen.
  • $serviceName: De naam van de service binnen de farm waaraan de backend wordt toegevoegd.

2. API-eindpunt-URL:

  • $apiUrl: opgebouwd met behulp van het serveradres, de boerderijnaam en de servicenaam.

3. Verzoektekst:

  • $requestBody: Bevat de JSON-payload met de details van de back-endserver. Het wordt geconverteerd naar JSON-formaat met behulp van ConverterenNaar-Json.

4. Invoke-RestMethode:

  • -Uri $apiUrl: Specificeert het API-eindpunt.
  • -Methodepost: Specificeert de HTTP POST-methode.
  • -Koppen @{ "Content-Type" = "application/json"; "API_KEY" = $apiKey }: Voegt de Content-Type en API SLEUTEL naar de verzoekheaders.
  • -Lichaam $requestBody: Specificeert de JSON-payload voor de POST-aanvraag.
  • -SkipCertificaatCheck: slaat SSL-certificaatvalidatie over (equivalent aan -k in krul). Dit is handig bij het testen of wanneer de server een zelfondertekend certificaat gebruikt.

5. Output:
Het antwoord van de API-aanroep wordt opgeslagen in de $response variabele en vervolgens uitgevoerd naar de console.

Raadpleeg de officiële Apidoc voor meer informatie over deze oproep https://www.relianoid.com/apidoc/v4.0/#create-a-new-backend

Schakel Backend in onderhoudsmodus in #

Dit script voert een PUT-verzoek uit om een ​​backend-server in de onderhoudsmodus te zetten op de RELIANOID Loadbalancer.

Voorwaarden

  • vervangen met uw daadwerkelijke API-sleutel.
  • vervangen <RELIANOID_SERVER> met het werkelijke serveradres van uw RELIANOID Loadbalancer.
  • vervangen met de eigenlijke boerderij.
  • vervangen met de HTTP-service waarbij de backend in onderhoud wordt gebracht.
  • vervangen met de ID van de backend om de onderhoudsmodus te wijzigen.
  • Zorg ervoor dat de benodigde API-machtigingen zijn ingeschakeld.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12 # Variabelen definiëren $apiKey = " " $server = "RELIANOID_SERVER>" $farmName = " " $serviceNaam = " " $backendId = # Definieer de API-eindpunt-URL $apiUrl = "https://${server}:444/api/v4.0/api.cgi/farms/$farmName/services/$serviceName/backends/$backendId/maintenance" # Definieer de verzoektekst $requestBody = @{ action = "maintenance" mode = "drain" } | ConvertTo-Json # Voer de API-aanroep uit met Invoke-RestMethod $response = Invoke-RestMethod -Uri $apiUrl -Method Put -Headers @{ "Content-Type" = "application/json" "API_KEY" = $apiKey } -Body $ requestBody -SkipCertificateCheck # Voer het antwoord $response uit

Uitleg

1. variabelen:

  • $apiKey: Uw API-sleutel.
  • $server: Het adres van uw RELIANOID Loadbalancer.
  • $farmName: De naam van de boerderij waar de backend voor onderhoud wordt toegevoegd.
  • $serviceName: De naam van de service binnen de farm waar de backend in onderhoud zal zijn.
  • $backendId: De ID van de backend die in de onderhoudsmodus moet worden gezet.

2. API-eindpunt-URL:

  • $apiUrl: opgebouwd met behulp van het serveradres, de boerderijnaam en de servicenaam.

3. Verzoektekst:

  • $requestBody: Bevat de JSON-payload met de actie en modus voor het instellen van de backend in de onderhoudsmodus. Het wordt geconverteerd naar JSON-formaat met behulp van ConverterenNaar-Json.

4. Invoke-RestMethode:

  • -Uri $apiUrl: Specificeert het API-eindpunt.
  • -Methode gezet: Specificeert de HTTP PUT-methode.
  • -Koppen @{ "Content-Type" = "application/json"; "API_KEY" = $apiKey }: Voegt de Content-Type en API SLEUTEL naar de verzoekheaders.
  • -Lichaam $requestBody: Specificeert de JSON-payload voor de PUT-aanvraag.
  • -SkipCertificaatCheck: slaat SSL-certificaatvalidatie over (equivalent aan -k in krul). Dit is handig bij het testen of wanneer de server een zelfondertekend certificaat gebruikt.

5. Output:
Het antwoord van de API-aanroep wordt opgeslagen in de $response variabele en vervolgens uitgevoerd naar de console.

Raadpleeg de officiële Apidoc voor meer informatie over deze oproep https://www.relianoid.com/apidoc/v4.0/#backend-in-maintenance

Verdere API-documentatie #

Voor meer gedetailleerde informatie over de API-aanroepen die beschikbaar zijn voor het beheren van de RELIANOID Load Balancer kunt u de officiële API-documentatie raadplegen op RELIANOID API-documentatie. Deze uitgebreide bron biedt gedetailleerde beschrijvingen van elk API-eindpunt, inclusief de vereiste HTTP-methoden, aanvraagparameters en antwoordformaten.

De documentatie is zo gestructureerd dat u begrijpt hoe u kunt omgaan met verschillende aspecten van de load balancer, zoals het beheren van farms, services en backends, en het bewaken van de systeemstatus en -prestaties. Elke API-aanroep gaat vergezeld van voorbeelden en uitleg om u door het proces van het opstellen van uw verzoeken en het afhandelen van de antwoorden te leiden. Dit is een essentiële hulpbron voor systeembeheerders en ontwikkelaars die hun load balancer-beheertaken willen automatiseren en stroomlijnen met behulp van de API.

📄 Download dit document in PDF-formaat #

    E-MAIL: *

    Powered by BeterDocs