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:
-
Tutorial de registro automático do Agente Docker
Como configurar dois (ou mais) Docker Agentes Privados que serão registrados automaticamente em um Grupo de Agentes Privados designado em sua organização.
-
Como configurar um grupo de Agentes Privados para registro e escalonamento automáticos usando Kubernetes e Leme.
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 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 obrigatória setoken
não está definido) -
password
: Senha (semtoken
) e criptografado usandoJitterbitUtils
, como descrito abaixo (propriedade obrigatória setoken
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 paratrue
, 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
para300
, 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
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 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
deauto_%ip%_%host%_%guid%
resultará em um nome de agente comoauto_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.
{
"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
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)
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¶
- 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
- 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
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
- Copie o
register.json
arquivo no mesmo diretório que ocredentials.txt
arquivo - Exclua o
credentials.txt
arquivo - 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:
- 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
- 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
- Pare o agente e exclua ou mova o
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
arquivo no mesmo local onde ocredentials.txt
arquivo foi encontrado - Inicie o agente
- Verifique o log do agente: o agente deve registrar-se automaticamente como um novo agente para o ID do Grupo de Agentes fornecido
- O Management Console Agentes > Grupos de Agente a página deve mostrar o agente recém-registrado
- Após o registro bem-sucedido, o agente deverá excluir o
register.json
arquivo e mostrar em vez disso umcredentials.txt
arquivo