Tutorial de Registro Automático do Agente Docker¶
Introdução¶
Este tutorial mostra como configurar dois (ou mais) Docker Agentes Privados 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 Docker Agente Privado 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, as credenciais e os agentes disponíveis necessários.
Importante
Se estiver usando agentes versão 10.83/11.21 ou posterior, ignore as etapas 2 e 3 ao usar um token de acesso de registro de Agente como um pré-requisito. As etapas 2 e 3 devem ser concluídas somente se você estiver usando credenciais Harmony no
register.json
arquivo. -
Criar um usuário instalador do 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 durante o registro.
-
Gere um nome de usuário e 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.
-
Lançar 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 Harmony Management Console.
Exercício bônus: Em vez de usar um register.json
arquivo, configure e inicie 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
- Um mínimo de 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 do 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 de Agente como um pré-requisito. Esta etapa deve ser concluída somente se você estiver usando credenciais Harmony no register.json
arquivo.
Crie um usuário em sua organização Harmony que tenha apenas a permissão Agent Install:
-
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 como 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 e-mail válido e atribua-o à papel Instalador de Agente:
Nota
Esta deve ser uma conta de usuário dedicada com um endereço e-mail 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 e-mail do novo usuário que acabou de criar. Caso contrário, você precisará responder usando uma janela privada do navegador para evitar o uso de credenciais de login em cache.
-
Cadastre este novo usuário (verifique seu e-mail para saber as etapas de ativação). Você precisará do nome de usuário e da senha criados na etapa 3, Gerar um nome de usuário e senha criptografados.
-
Depois que o novo usuário for registrado com sucesso, você poderá fazer login novamente no Harmony Portal usando suas credenciais de administrador.
3. Gere um Nome de Usuário e 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 de Agente como um pré-requisito. 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 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 eles serão diferentes cada vez que forem gerados, 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 do 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 na sua organização e anote seu ID:
-
Vá para Management Console > Agentes > Grupos de Agente.
-
Passe o mouse sobre o Grupo de Agentes que será associado ao novo agente registrado automaticamente e anote seu ID:
5. Crie o register.json
Arquivo¶
Crie o arquivo para cadastrar 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 o URL da nuvem, o token (ou nome de usuário e senha criptografados) e o ID do Grupo de Agentes apropriado 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, Médio Oriente, África) https://emea-west.jitterbit.com Aqui está um exemplo de
register.json
arquivo preenchido para uso na região NA:Importante
Tokens de acesso ao registro do Agente exigem 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
<working directory>/conf
contém o atualizadoregister.json
arquivo. -
Vá para o seu diretório de trabalho, o pai para o
conf
diretório. -
Use o Docker para baixar o agente Jitterbit mais recente:
4. Inicie um Docker Agente Privado 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
<working directory>/conf
contém o atualizadoregister.json
arquivo. -
Vá para o seu diretório de trabalho, o pai para o
conf
diretório. -
Use o Docker para baixar o agente Jitterbit mais recente:
docker pull jitterbit/agent:latest
-
Inicie um segundo Docker Agente Privado, 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 para 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 baseado no
agentNamePrefix
, comoauto_172.17.0.2_b2a546cc080e_59a260ca_2020-02-14 17:43:03.033
.
Variáveis ambientais¶
Se estiver usando credenciais de usuário do Agent Installer criptografadas, você também pode iniciar um contêiner usando variáveis de ambiente em vez do register.json
arquivo.
Teste usando DOCKER_AGENT_NAME
, AUTO_REGISTER
, e AUTO_REGISTER__X_
variáveis 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