Ir para o conteúdo

Lab 5.2: Configuração de ambiente

No contexto do Orquestrador BotCity, podemos configurar ambientes em conteineres para executar comandos CLI ou ativar Runners.

Nesse treinamento vamos focar em criar ambientes com Runners para execução de processos em paralelo.

Criar Runners

Vamos criar três Runners no Orquestrador BotCity, que serão responsáveis por executar as tarefas de automação.

Vamos nomear os Runners como:

  • RUNNER_01
  • RUNNER_02
  • RUNNER_03

Para criá-los, acesse o Orquestrador, no menu lateral clique em Runners, clique no botão + Novo Runner no canto superior direito.

Preencha o formulário com as informações necessárias e clique em Criar, repetindo o processo para os três Runners.

  • Label: ID do Runner
  • Nome: Nome do Runner
  • Acesso Remoto (opcional): Caso tenha algum IP específico para acesso remoto, informe aqui.
  • Tipo: Selecione o tipo de Runner Background.
  • Status: Selecione o status do Runner Ativo.

Aqui está um exemplo de como criar um Runner:

Novo Runner

Utilizar uma imagem

Para utilizar uma das imagens disponíveis, podemos acessar o Docker Hub e procurar pela imagem desejada.

Vamos utilizar a imagem botcity/botcity-python-web-firefox, que contém o ambiente necessário para executar tarefas de automação web.

No terminal, vamos utilizar o Docker pull command, que baixará a imagem para o ambiente local:

docker pull botcity/botcity-python-web-firefox

Criar Docker Compose

Com a imagem baixada, vamos criar o arquivo compose.yml com as configurações necessárias para subir os ambientes e ativar os Runners.

Para a comunicação entre o ambiente Docker e o Orquestrador ocorrer de forma correta e seguras, inicialmente, criaremos um arquivo para armazenar as credenciais que serão passadas como variáveis de ambiente no arquivo compose.yml.

Crie um arquivo de nome .env, e coloque as seguintes informações:

SERVER=https://developers.botcity.dev
LOGIN=<LOGIN>
KEY=<KEY>

Atenção

Lembre-se de substituir os valores de LOGIN e KEY para os respectivos valores de seu Workspace. Para obter o Login e a Key de seu orquestrador, acesse o Amb. de Desenvolvedor do seu Workspace.

Após configurar o arquivo .env com as credenciais do seu workspace BotCity, vamos configurar o arquivo compose.yml, no mesmo diretório que o arquivo .env está localizado.

O arquivo compose terá o seguinte conteúdo:

services:
  primeiro:
    image: botcity/botcity-python-web-firefox
    command: BotRunner
    env_file:
      - .env
    environment:
        SERVER: ${SERVER}
        LOGIN: ${LOGIN}
        KEY: ${KEY}
        MACHINE_ID: RUNNER_01
  segundo:
    image: botcity/botcity-python-web-firefox
    command: BotRunner
    env_file:
      - .env
    environment:
        SERVER: ${SERVER}
        LOGIN: ${LOGIN}
        KEY:  ${KEY}
        MACHINE_ID: RUNNER_02
  terceiro:
    image: botcity/botcity-python-web-firefox
    command: BotRunner
    env_file:
      - .env
    environment:
        SERVER: ${SERVER}
        LOGIN: ${LOGIN}
        KEY:  ${KEY}
        MACHINE_ID: RUNNER_03

Entenda o que precisa ser definido nesse documento:

  • services: lista de serviços que serão executados.
  • name: (primeiro | segundo | terceiro) nome do serviço que será executado.
  • image: identificador da imagem que utilizaremos no serviço.
  • command: (CLI | BotRunner) seleção do comando.
  • env_file: carrega informações sensiveis de um arquivo.
    • - .env: caminho onde as informações estão armazenadas.
  • environment: define as variáveis de ambiente.
    • SERVER: ${SERVER}: carrega o valor do arquivo (${SERVER}) para a variável de ambiente(SERVER).
    • LOGIN: ${LOGIN}: carrega o valor do arquivo (${LOGIN}) para a variável de ambiente(LOGIN).
    • KEY: ${KEY}: carrega o valor do arquivo (${KEY}) para a variável de ambiente(KEY).
    • MACHINE_ID: Name: (RUNNER_01 | RUNNER_02 | RUNNER_03) define o identificador do Runner na variável de ambiente(MACHINE_ID).

Atenção

Se você está utilizando o navegador Chrome em seu código, a imagem docker indicada no arquivo compose.yml deve ser modificada, correspondendo ao navegador que está configurado em seu bot.

As imagens do Chrome exigem que o parâmetro --shm-size seja definido como pelo menos 1g. Exemplo: --shm-size="1g".

O parâmetro --shm-size permite especificar o tamanho da memória compartilhada disponível para os contêineres em unidades de bytes. Isso é útil em cenários onde você está executando aplicativos dentro de contêineres que fazem uso extensivo de memória compartilhada.

Adicione ao compose.yml esse parâmetro como no exemplo abaixo:

    services:
      primeiro:
        image: botcity/botcity-python-web-chrome
        command: BotRunner
        env_file:
          - .env
        environment:
            SERVER: ${SERVER}
            LOGIN: ${LOGIN}
            KEY: ${KEY}
            MACHINE_ID: RUNNER_01
        shm_size: '1gb'

Para saber as imagens existentes, visite a documentação de contêineres docker- Imagens disponíveis.

Iniciar Runners

Com o arquivo compose devidamente configurado, abra o terminal no diretório onde o arquivo compose.yml foi salvo e execute o seguinte comando:

docker-compose up

No terminal, aparecerá o log de cada um dos Runners configurados, indicando que estão prontos para receber tarefas.

Runners inicializados

Perceba que os itens destacados indicam que ambos os serviços criados no arquivo compose, chamados primeiro-1, segundo-1 e terceiro-1, foram inicializados e os seus respectivos Runners estão ativos, aguardando tarefas para executarem, já que a mensagem "Waiting new tasks" foi exposta no terminal.

No Orquestrador, podemos confirmar se os Runners criados estão ativos no menu lateral Runners e verificando o status com a esfera verde, semelhante à imagem abaixo:

Confirmacao

Com os runners criados e ativados, podemos seguir com a implantação do projeto no Orquestrador.

Dica

Automações Web devem estar configuradas com o modo headless para funcionar corretamente.

Para automações que necessitam de interface gráfica, veja a imagem botcity-python-desktop.