Ir para o conteúdo

Registro Automático e Escalonamento Automático do Agente

Introdução

O registro automático do Agente permite que um administrador pré-configure os agentes de maneira segura para inicializá-los e registrá-los automaticamente. Isso permite que vários agentes sejam criados automaticamente (registro automático) e conforme a demanda aumenta (escalonamento automático).

O processo de registro automático e escalonamento automático do agente funciona com agentes privados Linux, Windows e Docker versão 10.14 ou superior. Não está disponível para grupos de agentes de nuvem.

Essas páginas adicionais estão disponíveis nesta seção:

Visão Geral

O fluxo normal de inicialização do agente espera um credentials.txt arquivo para estar presente no diretório de instalação do agente. Este arquivo contém credenciais criptografadas para um agente específico. Como este arquivo de credenciais é exclusivo, ele não pode ser duplicado e usado com outros agentes.

O processo de registro automático substitui este fluxo de inicialização e, em vez disso, permite que cada instância de um agente crie seu próprio credentials.txt arquivo na inicialização.

Este processo requer um register.json arquivo, que não é exclusivo de um agente e, portanto, pode ser copiado, duplicado ou imageado para todos os agentes em um grupo de agentes.

O register.json arquivo é, em vez disso, exclusivo para o grupo de agentes específico de uma organização.

O processo de registro automático requer que ambos os critérios sejam atendidos:

  • Um register.json arquivo está presente no agente

  • A credentials.txt arquivo não está presente no agente

Arquivo de Registro do Agente

O arquivo de registro do Agente é um arquivo JSON chamado register.json. Ele é colocado no mesmo local que o credentials.txt arquivo:

  • No Linux ou Docker, em /opt/jitterbit/Resources

  • No Windows, em C:\Program Files (x86)\Jitterbit Agent\Resources

O register.json arquivo tem estas propriedades:

  • cloudUrl: URL do Harmony Cloud (propriedade obrigatória)

  • token: token de acesso de registro do Agente (propriedade necessária se username e password não estão definidos)

    Importante

    Se estiver usando agentes versão 10.83/11.21 ou posterior, recomendamos usar Tokens de acesso de registro de Agente sobre credenciais de usuário criptografadas do Agent Installer. Os tokens de acesso do Registro do Agente não expiram e podem ser gerenciados no Management Console a qualquer momento.

  • username: Nome de usuário (sem token), e criptografado usando o JitterbitUtils aplicativo empacotado com a instalação do agente padrão, conforme descrito abaixo (propriedade necessária se token não está definido)

  • password: Senha (sem token), e criptografado usando JitterbitUtils, como descrito abaixo (propriedade necessária se token não está definido)

  • agentGroupId: ID do grupo de Agente, visível no Management Console Agents página

  • agentNamePrefix: Um prefixo adicionado ao carimbo de data/hora UTC de criação do agente para formar o nome do agente, conforme mostrado no Management Console. Variáveis que são substituídas automaticamente podem ser usadas para criar nomes exclusivos que identificam um agente tanto no Management Console quanto no sistema hospedar (propriedade opcional).

  • deregisterAgentOnDrainstop: Quando definido para true, executa o cancelamento do registro do agente após a interrupção do agente ou desligamento da JVM e remove o agente da página Agentes do Console de Gerenciamento. O padrão é false(propriedade opcional)

  • retryCount: Número de novas tentativas a serem tentadas se o agente estiver tendo problemas para se conectar ao Harmony Cloud para registro. Intervalo válido: 0 para 300, o padrão é 10(propriedade opcional).

  • retryIntervalSeconds: Número de segundos que o agente aguardará antes de tentar novamente uma conexão. Esse intervalo dobra a cada nova tentativa, até um máximo de 600 segundos (10 minutos). Intervalo válido: 5 para 600, o padrão é 5(propriedade opcional).

Variáveis no agentNamePrefix são automaticamente substituídos:

  • %ip%: Endereço IP do sistema ou contêiner
  • %host%: Nome do host do sistema; para uma instância do Docker, este é o Docker Container ID; para o Kubernetes, é definido como o nome do pod do contêiner
  • %guid%: Um GUID gerado aleatoriamente com 8 caracteres de comprimento. Isso é altamente recomendado em cenários de dimensionamento automático para atribuir um valor aleatório ao nome de cada agente.
  • Por exemplo: um agentNamePrefix de auto_%ip%_%host%_%guid% resultará em um nome de agente como

    auto_172.17.0.2_b2a546cc080e_59a260ca_2020-02-14 17:43:03.033

Exemplo register.json

Importante

Tokens de acesso de registro do Agente requer agentes versão 10.83 / 11.21 ou posterior.

register.json
{
  "cloudUrl": "https://example.jitterbit.com",
  "token": "jb_a1b23c45-d6ef-789a-b0cd-e12fabcd3e4f",
  "agentGroupId": "21",
  "agentNamePrefix": "auto_%ip%_%host%_%guid%",
  "deregisterAgentOnDrainstop": "true",
  "retryCount": "10",
  "retryIntervalSeconds": "5"
}

Importante

Se estiver usando agentes versão 10.83/11.21 ou posterior, recomendamos usar Tokens de acesso de registro de Agente sobre credenciais de usuário criptografadas do Agent Installer. Os tokens de acesso do Registro do Agente não expiram e podem ser gerenciados no Management Console a qualquer momento.

register.json
{
  "cloudUrl": "https://example.jitterbit.com",
  "username": "$000MTF/XSfev/KjlB/M1Q5vFkPLBKU5LKFYm.../PwoHRiSGGLlJ",
  "password": "$006WIdHtws7wrjgCNAoabUzu0f+HsyzAfAZtTpauvsHBE=",
  "agentGroupId": "21",
  "agentNamePrefix": "auto_%ip%_%host%_%guid%",
  "deregisterAgentOnDrainstop": "true",
  "retryCount": "10",
  "retryIntervalSeconds": "5"
}

Para maior segurança, a conta (username) usado no register.json O arquivo deve ter apenas a permissão Instalação do agente. Isso é definido no Management Console. Para obter exemplos de como confirmar e definir uma papel de agente, consulte Gerenciar permissões, funções e membros dentro de Organizações.

Nota

Para configurar um usuário com permissão Agent Install, você precisará fazer login como um usuário com permissão Admin no portal Harmony. Ao concluir a configuração da nova conta, saia do portal Harmony, pois você precisará responder ao email de configuração do agente como esse novo usuário para concluir a configuração. Não fazer logout pode fazer com que você faça login como usuário administrador e não consiga concluir a configuração. Você pode usar uma janela privada do navegador para responder ao email de configuração do agente e evitar fazer login novamente como usuário com permissão Admin.

Dica

A cloudUrl necessário depende da região Harmony:

Recomendamos que você defina deregisterAgentOnDrainstop como true para que, quando os agentes forem desligados, eles sejam removidos automaticamente da página Agentes do Console de gerenciamento. Não fazer isso impedirá que o agente reinicie e registre com sucesso.

Editar em um Sistema Operacional Windows

Se você estiver editando o register.json arquivo em um sistema operacional Windows para uso com Docker, use um editor como Notepad++ que permite que você defina as terminações de linha corretamente. As alimentações de linha UNIX (LF) são necessárias para o register.json para funcionar corretamente em um sistema Docker. Isto é o que você deve ver ao editar o arquivo no Notepad++: Unix (LF)

anexo

Criptografar o Nome de Usuário e a Senha

Importante

Se estiver usando agentes versão 10.83/11.21 ou posterior, recomendamos usar Tokens de acesso de registro de Agente sobre credenciais de usuário criptografadas do Agent Installer. Os tokens de acesso de registro do Agente não exigem esta etapa de criptografia.

O nome de usuário e a senha são criptografados usando o JitterbitUtils aplicação (para Linux e Docker, com o script jitterbit-utils) empacotado com a instalação do agente padrão. Copie os resultados deste comando no arquivo JSON nos locais como descrito acima.

Exemplos

Exemplo de uso de jitterbit-utils no Linux para criptografar um nome de usuário e senha:

cd /opt/jitterbit/bin && jitterbit-utils -e "first.last@example.com" "somePassw0Rd1"

Exemplo de uso de jitterbit-utils no Docker para criptografar um nome de usuário e senha:

docker run --rm jitterbit/agent:latest jitterbit-utils -e "first.last@example.com" "somePassw0Rd1"

Exemplo de uso de JitterbitUtils.exe no Windows para criptografar um nome de usuário e senha:

cd C:\Program Files\Jitterbit Agent\bin && JitterbitUtils.exe -e "first.last@example.com" "somePassw0Rd1"

Exemplo de resposta (nome de usuário e senha, cada um em uma linha):

$000MTF/XSfev/KjlB/M1Q5vFkPLBKU5LKFYm.../PwoHRiSGGLlJ
$006WIdHtws7wrjgCNAoabUzu0f+HsyzAfAZtTpauvsHBE=

Dica

Se seu nome de usuário ou senha contiver caracteres normalmente interpretados pelo shell, você deverá escapá-los, como neste exemplo:

Shell Linux ou macOS:

docker run --rm jitterbit/agent echo "\"pa\$\$\`\\/\\/0º\""

Output:

"pa$$`\/\/0rd"

Lógica do Agente

O serviço Jitterbit Tomcat do Jitterbit Agent é responsável por verificar e executar o processo de registro automático. O processo procura por um register.json arquivo e, se presente, usa-o para criar um credentials.txt arquivo. No final do processo, o register.json arquivo é excluído, pois não é mais necessário para a inicialização do agente. Em vez disso, o credentials.txt arquivo que foi criado será usado.

Outros serviços de agente — como limpeza e o agendador — simplesmente esperarão durante a inicialização até que o credentials.txt arquivo está disponível.

Dimensionamento Automático e Provisionamento de Agente

Agentes de registro automático configurados são necessários para autoescala. Uma vez configurados, eles podem ser orquestrados com diferentes tecnologias, manualmente ou com sistemas como Kubernetes.

Amazon EC2

  1. Configure credenciais de autenticação:
    • Se estiver usando agentes versão 10.83 ou posterior, gere um token de acesso de registro de Agente
    • Caso contrário, adicione um usuário à organização e atribua ao usuário a permissão Instalação do agente. Criptografe o nome de usuário e a senha deste novo usuário usando JitterbitUtils
  2. Crie uma caixa de imagem, instale o agente e instale qualquer outro software necessário (monitoramento, utilitários, etc.)
  3. Pare o agente
  4. Crie o register.json arquivo e defina suas configurações. Para autenticação, insira:
    • Um token de acesso de registro de Agente ou
    • Um nome de usuário e senha criptografados
  5. Copie o register.json arquivar no mesmo diretório que o credentials.txt arquivo
  6. Exclua o credentials.txt arquivo
  7. Crie uma imagem do Amazon EC2

Neste ponto, esta imagem do Amazon EC2 pode ser usada em um grupo de dimensionamento automático ou usada manualmente criando uma nova instância do Amazon EC2 a partir da imagem.

Quando essas instâncias ficam on-line e o(s) agente(s) iniciam, eles passarão pelo processo de registro automático descrito acima.

Estivador

Ao usar um agente Docker para dimensionamento automático, o processo e o fluxo são os mesmos que descritos acima mas com duas opções: opção 1, utilizando arquivos mapeados; e opção 2, usando variáveis de ambiente.

Opção 1: Arquivos Mapeados

Os agentes do Docker exigem um credentials.txt arquivo a ser mapeado para o /conf diretório.

Em vez de fornecer e mapear um credentials.txt arquivo no /conf diretório, forneça o register.json arquivar naquele diretório usando uma ferramenta de orquestração de sua escolha (como Kubernetes).

Opção 2: Variáveis de Ambiente

Se estiver usando credenciais de usuário do instalador do agente criptografado, outra opção é fornecer o conteúdo do register.json arquivo usando variáveis de ambiente. Este exemplo mostra as variáveis que definem o cadastro automático:

AUTO_REGISTER="true"
HARMONY_ORIGIN="https://example.jitterbit.com"
AUTO_REGISTER_ENCRYPTED_USERNAME="$000MTF/XSfev/KjlB/M1Q5vFkPLBKU5LKFYm.../PwoHRiSGGLlJ"
AUTO_REGISTER_ENCRYPTED_PASSWORD="$006WIdHtws7wrjgCNAoabUzu0f+HsyzAfAZtTpauvsHBE="
AUTO_REGISTER_AGENT_GROUP_ID="21"
AUTO_REGISTER_AGENT_NAME_PREFIX="auto_%ip%_%host%_%guid%"
AUTO_REGISTER_DEREGISTER_ON_DRAINSTOP="true"
AUTO_REGISTER_RETRY_COUNT="10"
AUTO_REGISTER_RETRY_INTERVAL_SECONDS="5"

Aviso

Um problema conhecido do escalonamento automático é que, se o número de agentes para os quais você está licenciado for excedido, nenhuma mensagem de erro ou aviso será fornecido. Em vez disso, o registro do agente falha e uma mensagem de falha no registro é gravada no log do agente. Entretanto, nenhuma mensagem aparecerá no Management Console. Como solução alternativa, monitore o painel do Management Console, esteja ciente dos limites da sua licença e verifique se o número de agentes provisionados não excede esses limites.

Teste de Controle de Qualidade e Configuração

Para testar esses recursos e confirmar se você configurou um grupo de agentes corretamente:

  1. Configure credenciais de autenticação:
    • Se estiver usando agentes versão 10.83 ou posterior, gere um token de acesso de registro de Agente
    • Caso contrário, adicione um usuário à organização e atribua ao usuário a permissão Instalação do agente. Criptografe o nome de usuário e a senha deste novo usuário usando JitterbitUtils
  2. Instale um agente privado e teste com amostras de execução de operação para garantir que ele esteja funcionando corretamente durante a instalação normal e que funcione corretamente
  3. Pare o agente e exclua ou mova o credentials.txt arquivo para o agente
  4. Crie o register.json e defina suas configurações. Para autenticação, insira:
    • Um token de acesso de registro de Agente ou
    • Um nome de usuário e senha criptografados
  5. Coloque o register.json arquivar no mesmo local onde o credentials.txt arquivo foi encontrado
  6. Inicie o agente
  7. Verifique o log do agente: o agente deve registrar-se automaticamente como um novo agente para o ID do grupo de agentes fornecido
  8. O Management Console Agentes a página deve mostrar o agente recém-auto-registrado
  9. Após o registro bem-sucedido, o agente deve excluir o register.json arquivar e mostrar em vez disso um credentials.txt arquivo