chamada RELIANOID API REST do Powershell

Ver Categorias

chamada RELIANOID API REST do Powershell

10 min read

Maneiras de gerenciar RELIANOID API do Windows #

Gerenciar e automatizar remotamente um RELIANOID O Load Balancer pode ser feito de forma eficaz usando noid-cli, um programa de interface de linha de comando baseado em Perl. noid-cli foi projetado para fazer chamadas de API diretamente da linha de comando, simplificando tarefas como configuração de servidores virtuais, monitoramento do status do sistema e ajuste de configurações de balanceamento de carga. Esta ferramenta fornece um conjunto de comandos predefinidos que abstraem as complexidades das interações de API, permitindo que os administradores executem operações rapidamente sem a necessidade de construir manualmente solicitações HTTP. Sua facilidade de uso e integração com shell script o tornam uma escolha prática para manutenção de rotina e ajustes rápidos em um ambiente de terminal.

Por outro lado, programar um Script do PowerShell com as Invocar-RestMethod para gerenciar chamadas de API para o RELIANOID O Load Balancer oferece mais flexibilidade e potencial de automação. Os scripts do PowerShell podem automatizar sequências complexas de interações de API, lidar com dados dinâmicos e integrar-se a outros serviços e ferramentas baseados no Windows. Usando Invocar-RestMethod, os administradores podem criar scripts de automação personalizados que atendam com precisão às suas necessidades operacionais, como orquestrar procedimentos de failover, realizar atualizações em massa ou integrar o gerenciamento do balanceador de carga em fluxos de trabalho de gerenciamento de sistema mais amplos. Este método aproveita todo o poder dos recursos de script do PowerShell, incluindo tratamento de erros, registro em log e manipulação avançada de dados, tornando-o ideal para tarefas sofisticadas de automação e cenários de integração.

Este artigo descreverá as chamadas de API usando o método Powershell.

Usando o Powershell para fazer chamadas de API #

Fazer uma chamada para uma API usando o PowerShell para automatizar sistemas envolve aproveitar o Invocar-RestMethod cmdlet, que simplifica o envio de solicitações HTTP e HTTPS para serviços Web RESTful. Este cmdlet permite a interação com APIs especificando o URL do ponto final, o método HTTP (GET, POST, PUT, DELETE), cabeçalhos (como tokens de autorização) e corpo da solicitação (normalmente no formato JSON). Ao fazer isso, você pode recuperar, criar, atualizar ou excluir recursos no sistema de destino. Os scripts do PowerShell podem automatizar tarefas repetitivas, como gerenciamento de máquinas virtuais, configuração de dispositivos de rede ou busca de status do sistema, melhorando a eficiência e a consistência operacionais.

Para começar, normalmente você definirá o endpoint da API e quaisquer credenciais necessárias. Por exemplo, você pode usar autenticação básica ou uma chave de API nos cabeçalhos. Em seguida, dependendo da operação da API, pode ser necessário preparar uma carga JSON para solicitações POST ou PUT, que podem ser facilmente criadas e convertidas a partir de objetos do PowerShell usando o método Converter para Json cmdlet. Depois que a solicitação for elaborada e enviada, Invocar-RestMethod processa a resposta, que você pode manipular ou usar posteriormente em tarefas subsequentes em seu script. Este processo simplificado torna o PowerShell uma ferramenta poderosa para administradores de sistema e desenvolvedores que desejam automatizar e integrar vários sistemas e serviços por meio de APIs.

Pré-requisitos para ativar a automação remota de API #

Para fazer chamadas de API do PowerShell para gerenciar RELIANOID Load Balancer, vários pré-requisitos devem ser atendidos:

Habilitando permissões de API e criando uma chave de API #

Primeiramente, você precisa habilitar as permissões de API para a conta do usuário que fará as chamadas. Isso envolve acessar a GUI da web do balanceador de carga e navegar até Sistema> Usuário. Nesta seção, você pode configurar contas de usuário e atribuir permissões de API. Crie ou selecione uma conta de usuário e gere uma chave de API, que será usada para autenticar as chamadas de API. Se você estiver usando usuários de controle de acesso baseado em função (RBAC), certifique-se de que suas funções incluam as permissões necessárias para interagir com a API. Esta chave de API é essencial para autenticar e autorizar as solicitações de API de seus scripts do PowerShell.

Para obter mais informações, consulte este artigo https://www.relianoid.com/resources/knowledge-base/system-enterprise-edition-v8-administration-guide/system-user/ .

Identificando o endpoint da API #

Em segundo lugar, você precisa identificar o endpoint de API correto para se conectar ao balanceador de carga. O endpoint da API normalmente inclui o URL base do seu balanceador de carga seguido por caminhos específicos para diferentes funcionalidades. No caso de uma configuração de balanceador de carga clusterizado, é crucial usar um endereço IP compartilhado para o endpoint da API. Esse endereço IP compartilhado garante que a chamada da API seja sempre direcionada ao nó mestre, independentemente de qual nó esteja atuando como mestre no momento. O uso do IP compartilhado evita problemas em que a chamada de API pode ser feita para um nó em espera, garantindo que todas as configurações e operações sejam aplicadas consistentemente ao nó mestre ativo.

Exemplos de API Powershell #

A opção SkipCertificateCheck não pôde ser reconhecido em versões mais antigas do Powershell. Se este for o seu caso, defina esta opção no início do seu script Powershell:

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

Além disso, será necessário adicionar a seguinte linha em nossos scripts Powershell para evitar o erro “Invoke-RestMethod: A conexão subjacente foi fechada: ocorreu um erro inesperado em um recebimento".

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

Obtendo detalhes da fazenda #

Este script executa uma solicitação GET para recuperar informações sobre um farm específico no RELIANOID Balanceador de carga.

Pré-requisitos

  • Substituir com sua chave de API real.
  • Substituir <RELIANOID_SERVIDOR> com o endereço real do servidor do seu RELIANOID Balanceador de carga.
  • Substituir com a fazenda real.
  • Certifique-se de ter as permissões de API necessárias habilitadas.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12 # Definir variáveis ​​$apiKey = " "$servidor ="RELIANOID_SERVIDOR>" $farmName = " " # Defina o URL do endpoint da API $apiUrl = "https://${server}:444/api/v4.0/api.cgi/farms/$farmName" # Faça a chamada da API usando Invoke-RestMethod $response = Invoke -RestMethod -Uri $apiUrl -Method Get -Headers @{ "API_KEY" = $apiKey } -SkipCertificateCheck # Produz a resposta $response

Explicação

1. Variáveis:

  • $apiKey: sua chave de API.
  • $server: O endereço do seu RELIANOID Balanceador de carga.
  • $farmName: o nome do farm sobre o qual você deseja recuperar informações.

2. URL do terminal da API:

  • $apiUrl: construído usando o endereço do servidor e o nome do farm.

3. Invocar-RestMethod:

  • -Uri $apiUrl: especifica o terminal da API.
  • -Método Obter: especifica o método HTTP GET.
  • -Cabeçalhos @{ "API_KEY" = $apiKey }: adiciona a chave de API aos cabeçalhos da solicitação.
  • -SkipCertificateCheck: ignora a validação do certificado SSL (equivalente a -k em curl). Isso é útil para testes ou quando o servidor usa um certificado autoassinado.

4. Saída:
A resposta da chamada da API é armazenada no arquivo $response variável e depois enviada para o console.

Consulte o Apidoc oficial para obter mais informações sobre esta chamada https://www.relianoid.com/apidoc/v4.0/#retrieve-farm-by-name

Adicionando um novo backend no Farm #

Este script executa uma solicitação POST para adicionar um novo backend a um serviço específico dentro de um farm no balanceador de carga Relianoid.

Pré-requisitos

  • Substituir com sua chave de API real.
  • Substituir <RELIANOID_SERVIDOR> com o endereço real do servidor do seu RELIANOID Balanceador de carga.
  • Substituir com a fazenda real.
  • Substituir com o serviço HTTP onde o backend será adicionado.
  • Substituir com o IP do novo backend.
  • Substituir com o PORT do novo backend.
  • Certifique-se de ter as permissões de API necessárias habilitadas.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12 # Definir variáveis ​​$apiKey = " "$servidor ="RELIANOID_SERVIDOR>" $farmName = " "$serviceName =" " # Defina o URL do endpoint da API $apiUrl = "https://${server}:444/api/v4.0/api.cgi/farms/$farmName/services/$serviceName/backends" # Defina o corpo da solicitação $ requestBody = @{ ip = " "porta = peso = 1 prioridade = 1 } | ConvertTo-Json # Faça a chamada da API usando Invoke-RestMethod $response = Invoke-RestMethod -Uri $apiUrl -Method Post -Headers @{ "Content-Type" = "application/json" "API_KEY" = $apiKey } -Body $ requestBody -SkipCertificateCheck # Gera a resposta $response

Explicação

1. Variáveis:

  • $apiKey: sua chave de API.
  • $server: O endereço do seu RELIANOID Balanceador de carga.
  • $farmName: o nome do farm ao qual você deseja adicionar um novo back-end.
  • $serviceName: o nome do serviço no farm onde o back-end será adicionado.

2. URL do terminal da API:

  • $apiUrl: construído usando o endereço do servidor, o nome do farm e o nome do serviço.

3. Corpo da solicitação:

  • $requestBody: contém a carga JSON com os detalhes do servidor back-end. Ele é convertido para o formato JSON usando Converter para Json.

4. Invocar-RestMethod:

  • -Uri $apiUrl: especifica o terminal da API.
  • -Método Postagem: especifica o método HTTP POST.
  • -Cabeçalhos @{ "Content-Type" = "application/json"; "API_KEY" = $apiKey }: Adiciona o Content-Type e CHAVE API aos cabeçalhos da solicitação.
  • -Corpo $requestBody: especifica a carga JSON para a solicitação POST.
  • -SkipCertificateCheck: ignora a validação do certificado SSL (equivalente a -k em curl). Isso é útil para testes ou quando o servidor usa um certificado autoassinado.

5. Saída:
A resposta da chamada da API é armazenada no arquivo $response variável e depois enviada para o console.

Consulte o Apidoc oficial para obter mais informações sobre esta chamada https://www.relianoid.com/apidoc/v4.0/#create-a-new-backend

Habilitar back-end em modo de manutenção #

Este script executa uma solicitação PUT para definir um servidor backend para o modo de manutenção no RELIANOID Balanceador de carga.

Pré-requisitos

  • Substituir com sua chave de API real.
  • Substituir <RELIANOID_SERVIDOR> com o endereço real do servidor do seu RELIANOID Balanceador de carga.
  • Substituir com a fazenda real.
  • Substituir com o serviço HTTP onde o backend será colocado em manutenção.
  • Substituir com o ID do backend para modificar o modo de manutenção.
  • Certifique-se de ter as permissões de API necessárias habilitadas.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12 # Definir variáveis ​​$apiKey = " "$servidor ="RELIANOID_SERVIDOR>" $farmName = " "$serviceName =" "$backendId= # Defina o URL do endpoint da API $apiUrl = "https://${server}:444/api/v4.0/api.cgi/farms/$farmName/services/$serviceName/backends/$backendId/maintenance" # Defina o corpo da solicitação $requestBody = @{ action = "maintenance" mode = "drain" } | ConvertTo-Json # Faça a chamada da API usando Invoke-RestMethod $response = Invoke-RestMethod -Uri $apiUrl -Method Put -Headers @{ "Content-Type" = "application/json" "API_KEY" = $apiKey } -Body $ requestBody -SkipCertificateCheck # Gera a resposta $response

Explicação

1. Variáveis:

  • $apiKey: sua chave de API.
  • $server: O endereço do seu RELIANOID Balanceador de carga.
  • $farmName: O nome do farm onde é adicionado o back-end a ser colocado em manutenção.
  • $serviceName: o nome do serviço dentro do farm onde o back-end estará em manutenção.
  • $backendId: o ID do back-end a ser colocado em modo de manutenção.

2. URL do terminal da API:

  • $apiUrl: construído usando o endereço do servidor, o nome do farm e o nome do serviço.

3. Corpo da solicitação:

  • $requestBody: contém a carga JSON com a ação e o modo para definir o back-end para o modo de manutenção. Ele é convertido para o formato JSON usando Converter para Json.

4. Invocar-RestMethod:

  • -Uri $apiUrl: especifica o terminal da API.
  • - Método colocado: especifica o método HTTP PUT.
  • -Cabeçalhos @{ "Content-Type" = "application/json"; "API_KEY" = $apiKey }: Adiciona o Content-Type e CHAVE API aos cabeçalhos da solicitação.
  • -Corpo $requestBody: especifica a carga JSON para a solicitação PUT.
  • -SkipCertificateCheck: ignora a validação do certificado SSL (equivalente a -k em curl). Isso é útil para testes ou quando o servidor usa um certificado autoassinado.

5. Saída:
A resposta da chamada da API é armazenada no arquivo $response variável e depois enviada para o console.

Consulte o Apidoc oficial para obter mais informações sobre esta chamada https://www.relianoid.com/apidoc/v4.0/#backend-in-maintenance

Documentação adicional da API #

Para obter informações mais detalhadas sobre as chamadas de API disponíveis para gerenciar o RELIANOID Load Balancer, você pode consultar a documentação oficial da API em RELIANOID Documentação da API. Este recurso abrangente fornece descrições detalhadas de cada endpoint da API, incluindo os métodos HTTP necessários, parâmetros de solicitação e formatos de resposta.

A documentação está estruturada para ajudar você a entender como interagir com vários aspectos do balanceador de carga, como gerenciamento de farms, serviços e back-ends, bem como monitoramento do status e do desempenho do sistema. Cada chamada de API é acompanhada de exemplos e explicações para guiá-lo durante o processo de elaboração de suas solicitações e tratamento das respostas. Este é um recurso essencial para administradores de sistema e desenvolvedores que buscam automatizar e agilizar suas tarefas de gerenciamento de balanceador de carga usando a API.

📄 Baixe este documento em formato PDF #

    E-MAIL: *

    Powered by MelhoresDocs