Agentes privados Jitterbit no Docker
Introdução
Os exemplos nesta página mostram como executar um ou mais agentes privados em contêineres. usando a imagem do hub Docker do Jitterbit. O Solucionar problemas fornece uma lista de problemas comuns e suas soluções.
Nota
A imagem do Docker não é atualizada ao mesmo tempo que os pacotes de agentes do Windows ou Linux. Consulte a página de tags da imagem para ver quais versões estão disponíveis.
Os exemplos a seguir mostram como executar um único agente:
- Início rápido
- Registro manual com variáveis de ambiente
- Registro automático com variáveis de ambiente
- Registro automático com
register.json
arquivo
Os exemplos a seguir mostram como executar vários agentes:
Importante
Use os comandos nesta página para testes ou como base para desenvolvimento posterior e consulte a documentação do Docker para obter informações sobre como torná-los adequados para sistemas de produção.
Pré-requisitos
Você deve ter o seguinte:
- Docker
- Seu nome de usuário e senha da conta Harmony.
- Nome da sua organização Harmony.
Você deve ter o seguinte para executar os exemplos de vários agentes:
Início rápido
Este exemplo usa o jitterbit-config
comando para solicitar as informações de registro do agente, o jitterbit
comando para iniciar o agente e tail -F
para aguardar e mostrar o arquivo de log do agente.
-
Selecione Management Console > Agentes no menu do Portal Harmony e, em seguida, adicionar um grupo de agentes privados, ou anote o nome e o ID de um existente.
-
Em um terminal, execute este comando e responda aos prompts:
docker run -it jitterbit/agent sh -c "jitterbit-config; jitterbit start; tail -F log/jitterbit-agent.log"
-
Para verificar o status do seu agente, atualize a página Management Console > Agentes.
-
No terminal, pressione
Control+C
para parar o agente, ou usar odocker container stop
comando. -
(Opcional) Excluir o agente usando o Management Console. (Os agentes iniciados dessa maneira não são removidos automaticamente quando parados.)
Registro manual com variáveis de ambiente
No Exemplo de início rápido, você deve inserir as informações de registro do agente quando solicitado. Neste exemplo, essas informações são fornecidas usando variáveis de ambiente.
-
Adicionar um agente para seu grupo de agentes e anote seu nome.
-
Crie um arquivo contendo o seguinte, com valores definidos de acordo com a tabela abaixo:
HARMONY_ORIGIN= HARMONY_USERNAME= HARMONY_PASSWORD= HARMONY_ORG_NAME= HARMONY_AGENT_GROUP_NAME= HARMONY_AGENT_NAME=
Variável Descrição do valor HARMONY_ORIGIN
A URL de login para sua conta Harmony, https://REGION.jitterbit.com
, ondeREGION
é um dosna-east
,emea-west
, ouapac-southeast
.HARMONY_USERNAME
Seu nome de usuário da conta Harmony. HARMONY_PASSWORD
A senha da sua conta Harmony. HARMONY_ORG_NAME
Nome da sua organização Harmony. HARMONY_AGENT_GROUP_NAME
O nome do grupo do agente e o nome do ambiente, separados por um sublinhado. HARMONY_AGENT_NAME
O nome do agente. ExampleHARMONY_ORIGIN=https://na-east.jitterbit.com HARMONY_USERNAME=example@jbexample.com HARMONY_PASSWORD=P@55w0rd HARMONY_ORG_NAME=Example Org HARMONY_AGENT_GROUP_NAME=Example Agent Group_Example Env HARMONY_AGENT_NAME=Example Agent 1
-
Em um terminal, execute este comando para iniciar o agente, substituindo
FILE
com o nome do arquivo criado na etapa 2:docker run --env-file FILE jitterbit/agent
-
Para verificar o status do seu agente, atualize a página Management Console > Agentes.
-
No terminal, pressione
Control+C
para parar o agente, ou usar odocker container stop
comando. -
(Opcional) Excluir o agente usando o Management Console. (Os agentes iniciados dessa maneira não são removidos automaticamente quando parados.)
Registro automático com variáveis de ambiente
Existem duas desvantagens com o registro manual exemplo: você deve adicionar manualmente um agente no Management Console, e suas credenciais do Harmony ficarão visíveis para qualquer pessoa com acesso ao sistema.
Este exemplo evita ambos. Ele usa registro automático para adicionar automaticamente um agente ao Harmony. Suas credenciais do Harmony são criptografadas e passadas com os outros valores de registro necessários para o contêiner usando um conjunto diferente de variáveis de ambiente.
-
Em um terminal, execute o seguinte
jitterbit-utils
comando para criptografar suas credenciais, substituindoUSERNAME
ePASSWORD
com seu nome de usuário e senha do Harmony:docker run jitterbit/agent jitterbit-utils -e USERNAME PASSWORD
Example commanddocker run jitterbit/agent jitterbit-utils -e example@jbexample.com P@55w0rd
Example output$00HD1uP3SoM3odoS5NklwBp3VBeg1O4COW31ohIMqBBfWOcUrlzADwMawtI8lAcg6C $003k9pLM1SJvrnh4CeMzw6jBdzsr0TY6s92wNuMiBuIVs=
-
Copie a saída para uso na próxima etapa.
-
Crie um arquivo contendo o seguinte, com valores substituídos de acordo com a tabela abaixo:
HARMONY_ORIGIN= AUTO_REGISTER=true AUTO_REGISTER_AGENT_GROUP_ID= AUTO_REGISTER_AGENT_NAME_PREFIX=auto AUTO_REGISTER_DEREGISTER_ON_DRAINSTOP=false AUTO_REGISTER_ENCRYPTED_USERNAME= AUTO_REGISTER_ENCRYPTED_PASSWORD=
Variável Descrição do valor HARMONY_ORIGIN
A URL de login para sua conta Harmony, https://REGION.jitterbit.com
, ondeREGION
é um dosna-east
,emea-west
, ouapac-southeast
.AUTO_REGISTER_AGENT_GROUP_ID
O número de identificação do grupo de agentes. AUTO_REGISTER_ENCRYPTED_USERNAME
A primeira linha de saída da etapa 1. AUTO_REGISTER_ENCRYPTED_PASSWORD
A segunda linha de saída da etapa 1. ExampleHARMONY_ORIGIN=https://na-east.jitterbit.com AUTO_REGISTER=true AUTO_REGISTER_AGENT_GROUP_ID=12345 AUTO_REGISTER_AGENT_NAME_PREFIX=auto AUTO_REGISTER_DEREGISTER_ON_DRAINSTOP=false AUTO_REGISTER_ENCRYPTED_USERNAME=$00HD1uP3SoM3odoS5NklwBp3VBeg1O4COW31ohIMqBBfWOcUrlzADwMawtI8lAcg6C AUTO_REGISTER_ENCRYPTED_PASSWORD=$003k9pLM1SJvrnh4CeMzw6jBdzsr0TY6s92wNuMiBuIVs=
-
Execute este comando para iniciar o agente privado em contêiner, onde
FILE
é o nome do arquivo criado na etapa 2:docker run --detach --env-file FILE jitterbit/agent
-
Para verificar o status do seu agente, atualize a página Management Console > Agentes.
-
Para parar o agente, use o Management Console para parar drenagem o agente.
-
Para parar o contêiner, encontre o ID do contêiner com
docker ps
, então usedocker container stop CONTAINER_ID
. -
Se
AUTO_REGISTER_DEREGISTER_ON_DRAINSTOP
está definido paratrue
, o agente é removido automaticamente quando parado. Caso contrário, delete o agente no Management Console.
Registro automático com register.json
arquivo
Este exemplo mostra uma alternativa ao registro com variáveis de ambiente : usar um register.json
arquivo.
-
Execute o
jitterbit-utils
comando para criptografar seu nome de usuário e senha do Harmony:docker run jitterbit/agent jitterbit-utils -e USERNAME PASSWORD
Dica
Você pode usar a mesma saída de nome de usuário e senha criptografada do exemplo anterior.
-
Crie um diretório e arquivo
conf/register.json
contendo o seguinte, com valores definidos de acordo com a tabela abaixo:conf/register.json{ "cloudUrl": "https://REGION.jitterbit.com", "agentGroupId": GROUP_ID, "username": "ENCRYPTED_USERNAME", "password": "ENCRYPTED_PASSWORD", "agentNamePrefix": "test", "deregisterAgentOnDrainstop": false, "retryCount": 10, "retryIntervalSeconds": 5 }
Parâmetro Descrição do valor cloudUrl
A URL de login para sua conta Harmony, https://REGION.jitterbit.com
, ondeREGION
é um dosna-east
,emea-west
, ouapac-southeast
.agentGroupId
O número de identificação do grupo de agentes. username
O nome de usuário criptografado (primeira linha de saída da etapa 1). password
A senha criptografada (segunda linha de saída da etapa 1). Example conf/register.json{ "cloudUrl": "https://na-east.jitterbit.com", "agentGroupId": 12345, "username": "$00HD1uP3SoM3odoS5NklwBp3VBeg1O4COW31ohIMqBBfWOcUrlzADwMawtI8lAcg6C", "password": "$003k9pLM1SJvrnh4CeMzw6jBdzsr0TY6s92wNuMiBuIVs=", "agentNamePrefix": "test", "deregisterAgentOnDrainstop": false, "retryCount": 10, "retryIntervalSeconds": 5 }
Dica
Um agente iniciado dessa forma usa as configurações padrão na imagem do Docker
jitterbit.conf
arquivo. Sem persistência, quaisquer alterações que você fizer neste arquivo dentro do contêiner serão perdidas quando o contêiner parar. Para usar suas próprias configurações, coloque-as emconf/jitterbit.conf
. Este arquivo é copiado para o contêiner quando ele inicia, sobrescrevendo o arquivo padrão. -
Execute este comando para iniciar o agente privado em contêiner:
docker run --detach --name jitterbit-agent --rm --volume ./conf:/conf jitterbit/agent
Importante
O agente privado falha ao iniciar se o
conf
diretório contém umcredentials.txt
arquivo e umregister.json
arquivo. -
Para verificar o status do seu agente, atualize a página Management Console > Agentes.
-
Para parar o agente, use o Management Console para parar drenagem o agente.
-
Para parar o contêiner, encontre o ID do contêiner com
docker ps
, então usedocker stop CONTAINER_ID
. -
Se
deregisterAgentOnDrainstop
está definido paratrue
, o agente é removido automaticamente quando parado. Caso contrário, delete o agente no Management Console.
Vários agentes com docker compose
Neste exemplo, três agentes privados com configurações idênticas são executados em um grupo de agentes.
-
Crie um arquivo de variáveis de ambiente conforme mostrado acima.
-
Crie um arquivo
docker-compose.yml
contendo o seguinte:docker-compose.ymlservices: agent1: env_file: FILE image: jitterbit/agent container_name: jitterbit-agent1 agent2: env_file: FILE image: jitterbit/agent container_name: jitterbit-agent2 agent3: env_file: FILE image: jitterbit/agent container_name: jitterbit-agent3
FILE
: O nome do arquivo de variável de ambiente criado na etapa 1.
-
Execute este comando para iniciar o grupo de agentes privados:
docker compose up -d
Dica
Correr
docker compose logs -f
para assistir aos arquivos de log de todos os agentes, oudocker stats
para monitorar o uso de recursos de cada agente. -
Para verificar o status do seu agente, atualize a página Management Console > Agentes.
-
Execute este comando para parar o grupo de agentes privados e remover seus contêineres:
docker compose down -d
Vários agentes com helm
e kubernetes
Jitterbit fornece um gráfico Helm que você pode usar para executar um cluster de agentes usando Kubernetes.
-
Iniciar um cluster Kubernetes.
Dica
No Docker Desktop, selecione Configurações > Kubernetes > Habilitar Kubernetes.
-
Execute este comando para criptografar seu nome de usuário e senha do Harmony:
docker run jitterbit/agent jitterbit-utils -e USERNAME PASSWORD
Dica
Você pode usar a mesma saída dos exemplos anteriores.
-
Crie um arquivo
values.yaml
contendo o seguinte, com valores substituídos de acordo com a tabela abaixo:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
nameOverride: private-agent-group image: repository: jitterbit/agent pullPolicy: always agent: registerjson: cloudUrl: "https://REGION.jitterbit.com" agentGroupId: GROUP_ID username: ENCRYPTED_USERNAME password: ENCRYPTED_PASSWORD agentNamePrefix: "test" deregisterAgentOnDrainstop: true hpa: enabled: true minReplicas: 3 maxReplicas: 5 replicas: 4
Linha Valor Substituir por 9 REGION
Sua região de conta Harmony ( na-east
,emea-west
, ouapac-southeast
).10 GROUP_ID
O número de identificação do grupo de agentes. 11 ENCRYPTED_USERNAME
A primeira linha de saída da etapa 2. 12 ENCRYPTED_PASSWORD
A segunda linha de saída da etapa 2. Cuidado
Esta configuração especifica que o Kubernetes deve executar pelo menos 3 e no máximo 5 agentes se o Horizontal Pod Autoscaler está ativo, ou 4 agentes se não estiver. Como cada agente privado do Docker precisa de aproximadamente 0,25 núcleos de CPU e 2 GB de memória, você deve verificar as especificações do seu host pode suportar esse número de agentes. Você também pode adicionar um
resources
elemento para definir os limites de utilização de recursos. Para mais detalhes, veja o exemplo do Jitterbitvalue.yml
arquivo. -
Execute estes comandos para adicionar e atualizar o repositório de gráficos do Helm:
helm repo add jitterbit https://jitterbit.github.io/charts helm repo update
-
Execute este comando para iniciar o cluster do agente privado:
helm upgrade -i -f values.yaml private-agent-group jitterbit/agent-group
Dica
Correr
kubectl -n default get pods --watch
para monitorar o status do cluster, oukubectl exec -it private-agent-group-0 -- curl localhost:46912/axis/v1/cdk/internal/members
para listar os membros do cluster do serviço de escuta. -
Execute este comando para parar o cluster e remover os contêineres:
helm uninstall private-agent-group
Solucionar problemas
Estas seções na página Solução de problemas pode ajudar na solução de problemas de agentes privados em execução no Docker: