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 RunnerNome: Nome do RunnerAcesso Remoto(opcional): Caso tenha algum IP específico para acesso remoto, informe aqui.Tipo: Selecione o tipo de RunnerBackground.Status: Selecione o status do RunnerAtivo.
Aqui está um exemplo de como criar um 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.
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:
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.


