Ir para o conteúdo

Registro Automático e Escalonamento Automático de 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 Linux, Windows e Docker Agentes Privados versão 10.14 ou superior. Não está disponível para Grupos de Agentes em 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 esteja 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 é único, ele não pode ser duplicado e usado com outros agentes.

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

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

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

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

  • A register.json arquivo está presente no agente

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

Arquivo de Registro de 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 ao registro do Agente (propriedade obrigató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 obrigatória se token não está definido)

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

  • agentGroupId: ID do Grupo de Agentes, disponível no Management Console Agentes > Grupos de Agente, passando o mouse sobre o nome do Grupo de Agentes para ver o ID do Grupo de Agentes (propriedade obrigatória)

  • 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 parada do agente ou encerramento 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 esperará antes de tentar novamente uma conexão. Esse intervalo dobra a cada nova tentativa, até no máximo 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 Container ID do Docker; para Kubernetes, é definido como o nome do pod do contêiner
  • %guid%: um GUID gerado aleatoriamente com 8 caracteres. Isto é altamente recomendado em cenários de escalonamento 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

Exemploregister.json

Importante

Tokens de acesso ao registro do Agente exigem 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 Gerenciamento de permissões, funções e membros dentro de Organizações.

Nota

Para configurar um usuário com permissão de Instalação de agente, você precisará fazer login como um usuário com permissão de Admin no Portal Harmony. Ao concluir a configuração da nova conta, saia do Portal Harmony, pois você precisará responder ao e-mail 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 e-mail de configuração do agente e evitar fazer login novamente como usuário com permissão Admin.

Dica

O cloudUrl necessário depende da Região de Harmony:

Recomendamos que você defina deregisterAgentOnDrainstop como true para que, à medida que os agentes são encerrados, eles sejam automaticamente removidos da página Agentes do Management Console. Não fazer isso impedirá que o agente seja reiniciado e registrado com êxito.

Editando 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 definir os finais de linha corretamente. Linefeeds UNIX (LF) são necessários 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

Criptografando 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 para o arquivo JSON nos locais conforme 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 Agente Jitterbit é responsável por verificar e executar o processo de registro automático. O processo procura um register.json arquivo e, se presente, usa-o para criar um credentials.txt arquivo. Ao final do processo, o register.json O arquivo é excluído porque 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 do agente – como a limpeza e o agendador – simplesmente aguardarã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 escalonamento automático. Uma vez configurados, eles podem ser orquestrados com diferentes tecnologias, seja 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 arquivo no mesmo diretório que o credentials.txt arquivo
  6. Exclua o credentials.txt arquivo
  7. Crie uma imagem Amazon EC2

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

Quando essas instâncias ficarem online e o(s) agente(s) iniciar(em), eles passarão pelo processo de registro automático descrito acima.

Docker

Ao usar um agente Docker para escalonamento automático, o processo e o fluxo são os mesmos 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 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 arquivo nesse 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 Agent Installer criptografadas, 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.

Controle de Qualidade e Teste de 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 exemplos 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 arquivo 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 > Grupos de Agente a página deve mostrar o agente recém-registrado
  9. Após o registro bem-sucedido, o agente deverá excluir o register.json arquivo e mostrar em vez disso um credentials.txt arquivo