Tutorial de Registro Automático do Agente Docker¶
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 em 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, ignore as etapas 2 e 3 ao usar um token de acesso de registro de Agente como um pré-requisito recomendado. 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 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 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.
-
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 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 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 de Agente como um pré-requisito recomendado. 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 email válido e atribua-o à papel Instalador de Agente:
Nota
Esta deve ser uma conta de usuário dedicada com um endereço 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 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 email 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 uma senha criptografados.
-
Depois que o novo usuário for registrado com sucesso, você poderá fazer 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 de Agente como um pré-requisito recomendado. 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 seguintes ao 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 na sua organização e anote seu ID:
-
Vá para Management Console > Agentes.
-
Anote o nome e ID do grupo de agentes.
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 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, Oriente Médio, África) https://emea-west.jitterbit.com Aqui está um exemplo de um
register.json
arquivo preenchido para uso na região NA:Importante
Tokens de acesso de registro do 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 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 instalador do agente criptografado, 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