Ir para o conteúdo

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:

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.

  1. 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.

  2. 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"
    
  3. Para verificar o status do seu agente, atualize a página Management Console > Agentes.

  4. No terminal, pressione Control+C para parar o agente, ou usar o docker container stop comando.

  5. (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.

  1. Adicionar um agente para seu grupo de agentes e anote seu nome.

  2. 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, onde REGION é um dos na-east, emea-west, ou apac-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.
    Example
    HARMONY_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
    
  3. 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
    
  4. Para verificar o status do seu agente, atualize a página Management Console > Agentes.

  5. No terminal, pressione Control+C para parar o agente, ou usar o docker container stop comando.

  6. (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.

  1. Em um terminal, execute o seguinte jitterbit-utils comando para criptografar suas credenciais, substituindo USERNAME e PASSWORD com seu nome de usuário e senha do Harmony:

    docker run jitterbit/agent jitterbit-utils -e USERNAME PASSWORD
    
    Example command
    docker run jitterbit/agent jitterbit-utils -e example@jbexample.com P@55w0rd
    
    Example output
    $00HD1uP3SoM3odoS5NklwBp3VBeg1O4COW31ohIMqBBfWOcUrlzADwMawtI8lAcg6C
    $003k9pLM1SJvrnh4CeMzw6jBdzsr0TY6s92wNuMiBuIVs=
    
  2. Copie a saída para uso na próxima etapa.

  3. 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, onde REGION é um dos na-east, emea-west, ou apac-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.
    Example
    HARMONY_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=
    
  4. 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
    
  5. Para verificar o status do seu agente, atualize a página Management Console > Agentes.

  6. Para parar o agente, use o Management Console para parar drenagem o agente.

  7. Para parar o contêiner, encontre o ID do contêiner com docker ps, então use docker container stop CONTAINER_ID.

  8. Se AUTO_REGISTER_DEREGISTER_ON_DRAINSTOP está definido para true, 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.

  1. 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.

  2. 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, onde REGION é um dos na-east, emea-west, ou apac-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 em conf/jitterbit.conf. Este arquivo é copiado para o contêiner quando ele inicia, sobrescrevendo o arquivo padrão.

  3. 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 um credentials.txt arquivo e um register.json arquivo.

  4. Para verificar o status do seu agente, atualize a página Management Console > Agentes.

  5. Para parar o agente, use o Management Console para parar drenagem o agente.

  6. Para parar o contêiner, encontre o ID do contêiner com docker ps, então use docker stop CONTAINER_ID.

  7. Se deregisterAgentOnDrainstop está definido para true, 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.

  1. Crie um arquivo de variáveis de ambiente conforme mostrado acima.

  2. Crie um arquivo docker-compose.yml contendo o seguinte:

    docker-compose.yml
    services:
        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.
  3. 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, ou docker stats para monitorar o uso de recursos de cada agente.

  4. Para verificar o status do seu agente, atualize a página Management Console > Agentes.

  5. 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.

  1. Iniciar um cluster Kubernetes.

    Dica

    No Docker Desktop, selecione Configurações > Kubernetes > Habilitar Kubernetes.

  2. 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.

  3. 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, ou apac-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 Jitterbit value.yml arquivo.

  4. 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
    
  5. 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, ou kubectl 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.

  6. 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: