Registro automático e dimensionamento automático do agente privado Jitterbit
Introdução
O registro automático de Agente permite que um administrador pré-configure agentes de forma segura para iniciar e registrar 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 autoescala do agente funciona com agentes privados Linux, Windows e Docker versão 10.14 ou superior. Ele não está disponível para os grupos de agentes de nuvem.
Estas páginas adicionais estão disponíveis nesta seção:
-
Tutorial de registro automático do agente Docker
Como configurar dois (ou mais) agentes privados do Docker que serão registrados automaticamente em um grupo de agentes privados designado em sua organização.
-
Como configurar um grupo de agentes privados para serem registrados e dimensionados automaticamente usando Kubernetes e Leme.
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 da Harmony Cloud (propriedade obrigatória) -
token
: Token de acesso de registro do Agente (propriedade necessária seusername
epassword
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 (semtoken
), e criptografado usando oJitterbitUtils
aplicativo empacotado com a instalação do agente padrão, conforme descrito abaixo (propriedade necessária setoken
não está definido) -
password
: Senha (semtoken
), e criptografado usandoJitterbitUtils
, como descrito abaixo (propriedade necessária setoken
não está definido) -
agentGroupId
: ID do grupo de Agente, visível no Management Console Agentes página -
agentNamePrefix
: Um prefixo adicionado ao timestamp UTC da 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 paratrue
, 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 tentativas a serem feitas se o agente estiver com problemas para se conectar ao Harmony Cloud para registro. Intervalo válido:0
para300
, 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
para600
, 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
deauto_%ip%_%host%_%guid%
resultará em um nome de agente comoauto_172.17.0.2_b2a546cc080e_59a260ca_2020-02-14 17:43:03.033
Exemplo register.json
Importante
Tokens de acesso de registro de Agente requer agentes versão 10.83 / 11.21 ou posterior.
{
"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.
{
"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
arquivo deve ter apenas a permissão Agent Install. 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á efetuar login como um usuário com permissão Admin no portal Harmony. Quando tiver concluído a configuração da nova conta, efetue logout 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 efetuar logout pode resultar em você efetuar login como o usuário administrador e não conseguir concluir a configuração. Você pode usar uma janela privada do navegador para responder ao email de configuração do agente para evitar efetuar login novamente como o usuário com permissão Admin.
Dica
A cloudUrl
necessário depende da região de Harmony:
-
NA: Https://na-east.jitterbit.com
-
Ásia-Pacífico: https://apac-southeast.jitterbit.com
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 o Docker, use um editor como o Notepad++ que permite que você defina as terminações de linha corretamente. As quebras 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)
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 do Agente Registration não exigem essa 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 uma 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 uma 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ê deve 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.
Escalonamento 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
- Configure as 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 a ele a permissão Agent Install. Criptografe o nome de usuário e a senha deste novo usuário usando
JitterbitUtils
- Crie uma caixa de imagem, instale o agente e instale qualquer outro software necessário (monitoramento, utilitários, etc.)
- Pare o agente
- Crie o
register.json
fileand define suas configurações. Para autenticação, insira:- Um token de acesso de registro de Agente, ou
- Um nome de usuário e senha criptografados
- Copie o
register.json
arquivar no mesmo diretório que ocredentials.txt
arquivo - Exclua o
credentials.txt
arquivo - 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, usando 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 registro 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 com o dimensionamento automático é que, se o número de agentes para os quais você tem licença for excedido, nenhuma mensagem de erro ou aviso será fornecido. Em vez disso, o registro do agente falha e uma mensagem de falha de registro é gravada no log do agente. No entanto, nenhuma mensagem aparecerá no Management Console. Como solução alternativa, monitore o painel do Management Console, esteja ciente dos seus limites de 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:
- Configure as 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 a ele a permissão Agent Install. Criptografe o nome de usuário e a senha deste novo usuário usando
JitterbitUtils
- Instale um agente privado e teste com execuções de operação de amostra para garantir que ele esteja funcionando corretamente durante a instalação normal e que funcione corretamente
- Pare o agente e exclua ou mova-o para fora
credentials.txt
arquivo para o agente - 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
- Coloque o
register.json
arquivar no mesmo local onde ocredentials.txt
arquivo foi encontrado - Inicie o agente
- Verifique o log do agente: o agente deve se registrar automaticamente como um novo agente para o ID do grupo de agentes fornecido
- O Management Console Agentes a página deve mostrar o agente recém-auto-registrado
- Após o registro bem-sucedido, o agente deve excluir o
register.json
arquivar e mostrar em vez disso umcredentials.txt
arquivo