Tutorial de registro automático do agente privado Docker Jitterbit
Introdução
Este tutorial mostra 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. Você faz isso usando um register.json
arquivo.
Nota
Documentação adicional do agente privado do Docker está disponível em https://hub.docker.com/r/jitterbit/agent/.
Visão geral
Para concluir este tutorial, conclua cada etapa na ordem:
-
Pré-requisitos: Certifique-se de ter o software necessário, credenciais e agentes disponíveis.
Importante
Se estiver usando agentes versão 10.83 / 11.21 ou posterior, pule as etapas 2 e 3 ao usar um token de acesso de registro do Agente como um [pré-requisito] recomendado
#prerequisites
). As etapas 2 e 3 devem ser concluídas somente se você estiver usando credenciais Harmony noregister.json
arquivo. -
Criar um usuário instalador de agente: Se não estiver usando um token de acesso de registro de Agente, crie um nome de usuário e uma senha que serão compartilhados entre os agentes e usados no registro.
-
Gere um nome de usuário e uma senha criptografados: Se não estiver usando um token de acesso de registro de Agente, gere versões criptografadas do nome de usuário e da senha.
-
Escolha um grupo de agentes: Selecione um grupo de agentes e obtenha seu ID.
-
Crie o
register.json
Arquivo: Crie, conclua e instale oregister.json
arquivo. -
Lançar o primeiro agente: Inicie o primeiro agente usando o registro automático que você configurou.
-
Inicie o segundo agente: Inicie um segundo agente usando o mesmo registro automático que você configurou.
-
Confirme dois agentes em execução: Verifique se ambos os agentes foram iniciados usando o Jitterbit Management Console.
Exercício bônus: Em vez de usar um aplicativo compartilhado register.json
arquivar, configurar e iniciar um agente usando variáveis de ambiente cujos valores podem ser compartilhados.
1. Pré-requisitos
Para concluir este tutorial, você precisará de:
- Docker (1.12 ou superior) no Windows, Linux ou macOS
- Uma organização Harmony e login com permissão Admin
- No mínimo dois agentes disponíveis na sua assinatura Harmony
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.
2. Crie um usuário instalador de agente
Importante
Se estiver usando agentes versão 10.83 / 11.21 ou posterior, pule esta etapa ao usar um token de acesso de registro do Agente como um [pré-requisito] recomendado#prerequisites
). Esta etapa deve ser concluída somente se você estiver usando credenciais Harmony no register.json
arquivo.
Crie um usuário na sua organização Harmony que tenha apenas a permissão Instalação do agente:
-
Faça login no portal Harmony (https://login.jitterbit.com) como um usuário com permissão Admin (credenciais de administrador).
-
Vá para Management Console > Organizações.
-
Adicione uma nova papel e nomeie-a Instalador do Agente:
-
Modifique as permissões desta nova função usando o menu suspenso ao lado de Ler para selecionar apenas a permissão Instalação do agente:
-
Selecione a aba Membros, adicione um novo membro usando um endereço de email válido e atribua a ele a papel Instalador de Agente:
Nota
Esta deve ser uma conta de usuário dedicada com um endereço de email válido. Isso será usado especificamente para registrar agentes automaticamente.
-
Saia da conta de usuário atual (aquela com permissão Admin). Isso permite que você responda ao email do novo usuário que você acabou de criar. Caso contrário, você precisará responder usando uma janela privada do navegador para evitar usar quaisquer credenciais de login em cache.
-
Registre este novo usuário (verifique seu email para as etapas de ativação). Você precisará do nome de usuário e senha que criou na etapa 3, Gerar um nome de usuário e senha criptografados.
-
Depois que o novo usuário for registrado com sucesso, você poderá efetuar login novamente no portal Harmony usando suas credenciais de administrador.
3. Gere um nome de usuário e uma senha criptografados
Importante
Se estiver usando agentes versão 10.83 / 11.21 ou posterior, pule esta etapa ao usar um token de acesso de registro do Agente como um [pré-requisito] recomendado#prerequisites
). Esta etapa deve ser concluída somente se você estiver usando credenciais Harmony no register.json
arquivo.
Gere um nome de usuário e uma senha criptografados para o usuário dedicado que você acabou de criar para registrar agentes automaticamente:
-
Em uma linha de comando em um terminal executando o Docker, criptografar o nome de usuário (mostrado abaixo como
first.last+agent-install@example.com
) e senha (mostrada abaixo comosome_Passw0Rd1
) do membro que você acabou de criar:# This Docker command returns an encrypted username and password (example only, actual will be different) docker run --rm jitterbit/agent:latest jitterbit-utils -e 'first.last+agent-install@example.com' 'some_Passw0Rd1' $000jwdBLiBsJnx4hCNIob1yn3gK9kisBm6knxmLFxV.../WHp6X7pvBkxuROg== $00phLWHm04Zsx9Wmug1eiIVaJemGjjm91CAVtkHH0bG+Y=
-
As credenciais criptografadas estão nas duas linhas após o comando. Observe que elas serão diferentes cada vez que forem geradas, mesmo com o mesmo nome de usuário e senha. O nome de usuário é seguido pela senha:
- Nome de usuário criptografado:
$000jwdBLiBsJnx4hCNIob1yn3gK9kisBm6knxmLFxV.../WHp6X7pvBkxuROg==
- Senha criptografada:
$00phLWHm04Zsx9Wmug1eiIVaJemGjjm91CAVtkHH0bG+Y=
- Nome de usuário criptografado:
Cuidado
Se você escapar o nome de usuário ou senha no comando Docker, verifique se o valor retornado pelo comando escape corresponde corretamente. Isso pode ser complicado:
# Escaping special characters in 4pete'sSake!
echo "4pete'sSake\!"
4pete'sSake\!
echo '4pete'"'"'sSake!'
4pete'sSake!
4. Escolha um grupo de agentes
Escolha um grupo de agentes em sua organização e anote seu ID:
-
Vá para Management Console > Agentes.
-
Anote o nome e o ID do grupo do agente.
5. Crie o register.json
arquivo
Crie o arquivo para registrar automaticamente o agente:
-
No seu diretório de trabalho atual, crie uma pasta chamada
conf
. -
Nesse diretório, crie e edite um arquivo chamado
register.json
. -
Insira a URL da nuvem, o token (ou nome de usuário e senha criptografados) e o ID do grupo de agentes apropriados para sua região Harmony:
Região URL da nuvem NA (América do Norte) https://na-east.jitterbit.com APAC (Ásia-Pacífico) https://apac-southeast.jitterbit.com EMEA (Europa, Oriente Médio, África) https://emea-west.jitterbit.com Aqui está um exemplo de um
register.json
arquivo concluído para uso na região NA:Importante
Tokens de acesso de registro de Agente requer agentes versão 10.83 / 11.21 ou posterior.
register.json{ "cloudUrl": "https://na-east.jitterbit.com", "token": "jb_a1b23c45-d6ef-789a-b0cd-e12fabcd3e4f", "agentGroupId": "224281", "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://na-east.jitterbit.com", "username": "$000MTF/XSfev/KjlB/M1Q5vFkPLBKU5.../PwoHRiSGGLlJ", "password": "$006WIdHtws7wrjgCNAoabUzu0f+HsyzAfAZtTpauvsHBE=", "agentGroupId": "224281", "agentNamePrefix": "auto_%ip%_%host%_%guid%", "deregisterAgentOnDrainstop": "true", "retryCount": "10", "retryIntervalSeconds": "5" }
6. Inicie o primeiro agente
Inicie o primeiro agente:
-
Certifique-se de
<working directory>/conf
contém o atualizadoregister.json
arquivo. -
Vá para o seu diretório de trabalho, o pai do
conf
diretório. -
Use o Docker para baixar o agente Jitterbit mais recente:
4. Inicie um agente privado Docker que use issodocker pull jitterbit/agent:latest
conf
diretório e oregister.json
arquivo:docker run -it --rm -v "$(pwd)/conf:/conf" jitterbit/agent:latest # Command returns: ffdb4ed859472029cbf0b1ef0d4259db5a6...7290e200d36dbe5f75bfb59349
-
O nome do Docker será exibido quando você executar o comando
docker ps -a
, e o ID do contêiner corresponderá ao valor retornado pelorun
comando:docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS NAMES ffdb4ed85947 jitterbit/agent:latest "/entrypoint.sh /age…" 23 seconds ago Up 22 seconds bold_bhabha
Nota
Para parar ou executar o agente em modo de segundo plano, use estes comandos:
-
Para parar o agente, use
Control+C
oudocker stop <docker-name>
(Você precisará anotar o ID do contêiner da instância do Docker). -
Para executar o agente em modo de segundo plano, use
-d
ao iniciar o agente:docker run -d --rm -v "$(pwd)/conf:/conf" jitterbit/agent:latest # Command returns: ffdb4ed859472029cbf0b1ef0d4259db5a6...7290e200d36dbe5f75bfb59349
7. Inicie o segundo agente
Inicie o segundo agente:
-
Certifique-se de
<working directory>/conf
contém o atualizadoregister.json
arquivo. -
Vá para o seu diretório de trabalho, o pai do
conf
diretório. -
Use o Docker para baixar o agente Jitterbit mais recente:
docker pull jitterbit/agent:latest
-
Inicie um segundo agente privado do Docker, substituindo um nome apropriado neste comando por
<dockername>
:docker run --name <dockername> -d --rm -v "$(pwd)/ conf:/conf " jitterbit/agent:latest
Dica
Desta vez, demos à instância do Docker uma
<dockername>
para que você possa parar de usardocker stop <dockername>
.
8. Confirme dois agentes em execução
Confirme se o primeiro e o segundo agente estão em execução:
- Retorne ao Management Console > Agentes > Grupos de Agente para confirmar seus agentes em execução.
- Você deverá ver dois agentes em execução, cada um identificado por um nome com base no
agentNamePrefix
, comoauto_172.17.0.2_b2a546cc080e_59a260ca_2020-02-14 17:43:03.033
.
Variáveis de ambiente
Se estiver usando credenciais de usuário do instalador do agente criptografado, você também pode iniciar um contêiner usando variáveis de ambiente em vez de register.json
arquivo.
Teste usando DOCKER_AGENT_NAME
, AUTO_REGISTER
, e AUTO_REGISTER__X_
variáveis de ambiente:
DOCKER_AGENT_NAME=agent1
docker run -it --rm \
--name=${DOCKER_AGENT_NAME} \
-e AUTO_REGISTER="true" \
-e HARMONY_ORIGIN="https://na-east.jitterbit.com" \
-e AUTO_REGISTER_ENCRYPTED_USERNAME="<encrypted username>" \
-e AUTO_REGISTER_ENCRYPTED_PASSWORD="<encrypted password>" \
-e AUTO_REGISTER_AGENT_GROUP_ID="<agent group id>" \
-e AUTO_REGISTER_AGENT_NAME_PREFIX="auto_%ip%_%host%_%guid%" \
-e AUTO_REGISTER_DEREGISTER_ON_DRAINSTOP="true" \
jitterbit/agent:latest