Processo de atualização do Sherpa Orchestrator#
⚠️ Antes de atualizar: leia as notas de todas as versões, desde a instalada até a de destino. Elas podem conter etapas obrigatórias para a atualização. Notas da última versão publicada: versão 5.9.4.
⚠️ Importante: Se o Sherpa Orchestrator estiver sendo atualizado de uma versão inferior a
5.9.1e o banco de dados integrado do Sherpa Orchestrator estiver em uso, a migração do banco de dados deve ser realizada antes da atualização.
Para MariaDB, realize a migração conforme as instruções em "Migração do MariaDB para o contêiner
orchestrator-db:v5.9.2+".
Para PostgreSQL, realize a migração conforme as instruções em "Migração do PostgreSQL para o contêiner
orchestrator-pg:v5.9.2+".
Se a atualização for a partir da versão
5.9.1ou posterior, ou se for usado um banco de dados externo, a migração não é necessária.
💡 Atualização automática Em vez das etapas manuais abaixo, é possível usar um script interativo:
sudo ./sh_scripts/update.shO script faz backup, interrompe os contêineres, baixa novas imagens, atualiza o
.enve inicia com verificação de disponibilidade.
1. Download dos arquivos#
Baixe todos os arquivos de atualização mais recentes do Sherpa Orchestrator pelos links na seção de preparação
2. Transferência dos arquivos para o servidor#
Após o download, transfira todos os arquivos para o servidor Linux de destino por qualquer método conveniente:
Via SCP/SFTP#
# Copie os arquivos para o servidor
scp *.tar.gz user@target-server:/path/to/installation/directory/
💡 Notas sobre a transferência via SCP/SFTP
*scp .tar.gz user@target-server:/path/to/installation/directory/ - copia os arquivos para o servidor remoto
scp- cópia segura*.tar.gz- padrão para selecionar arquivos de atualizaçãouser@target-server- credenciais de conexão/path/to/installation/directory/- caminho de destino no servidor
Via cliente SFTP#
Use qualquer cliente SFTP (FileZilla, WinSCP, Cyberduck) para copiar os arquivos para o servidor.
Via pasta de rede#
Se o servidor estiver acessível via SMB/CIFS, use o Explorador do Windows ou o comando copy.
Verificação da transferência#
# Conecte-se ao servidor
ssh user@target-server
# Vá para o diretório com os arquivos (normalmente opt/SherpaOrchestrator)
cd /path/to/installation/directory
# Verifique se todos os arquivos estão presentes
ls -la *.tar.gz
# Verifique os tamanhos dos arquivos
ls -lh *.tar.gz
💡 Notas sobre a verificação da transferência
ssh user@target-server - conecta ao servidor remoto via SSH
ssh- secure shelluser@target-server- credenciais de conexão
cd /path/to/installation/directory - navega até o diretório com os arquivos
*ls -la .tar.gz - mostra informações detalhadas sobre os arquivos baixados
-l- formato longo-a- mostra arquivos ocultos
*ls -lh .tar.gz - mostra os tamanhos dos arquivos em formato legível
-h- human readable (KB, MB, GB)
3. Parada dos contêineres#
# Pare todos os serviços em execução
docker compose down
💡 Notas sobre a parada dos contêineres
docker compose down - para todos os serviços do Docker Compose
- Para e remove contêineres e redes
- Preserva volumes e imagens
Verificação da parada: docker ps -a | grep orchestrator - verifica o status dos contêineres
docker ps -a- mostra todos os contêineres (inclusive os parados)| grep orchestrator- filtra pelo nome orchestrator
4. Carregamento das imagens Docker#
# Crie um backup do arquivo .env (se existir)
cp .env .env.backup
# Crie um backup da configuração
cp -r ./backend/config ./backend/config_backup
# Se forem usados certificados personalizados, copie-os para um local seguro
cp -r ./backend/config/certs ./certs_backup
# Descompacte os arquivos de atualização
tar -xvzf "$(ls docker_orchestrator_client_files_*.tgz | sort -V | tail -n 1)"
# Copie a configuração padrão do nginx (se ela não existir)
cp -r ./nginx/config/default ./nginx/config
# Torne os scripts executáveis
chmod +x sh_scripts/*.sh
# Se tiver sido criado um backup dos certificados, restaure-os
cp -r ./certs_backup/* ./nginx/config/certs/
# Carregue todas as imagens Docker
sudo ./sh_scripts/load_all_docker_images.sh
💡 Notas sobre o carregamento das imagens Docker
Criação de backups:
cp .env .env.backup- backup do arquivo de configuraçãocp -r ./backend/config ./backend/config_backup- backup do diretório configcp -r ./backend/config/certs ./certs_backup- backup dos certificados SSL
Descompactação e preparação:
tar -xvzf "$(ls docker_orchestrator_client_files_*.tgz | sort -V | tail -n 1)"- descompacta os arquivos de atualização mais recenteschmod +x sh_scripts/*.sh- torna os scripts executáveiscp -r ./certs_backup/* ./backend/config/certs/- restaura os certificados
sudo ./sh_scripts/load_all_docker_images.sh - carrega todas as imagens Docker
Verificação do carregamento: docker images | grep orchestrator - mostra as imagens do orchestrator carregadas
5. Seleção da configuração de BD e verificação das variáveis de ambiente#
# Abra o arquivo .env para revisão e atualização
nano ./.env
# Verifique a presença das variáveis obrigatórias
grep -E "(HOST_IP|MYSQL_PASSWORD|DB_PASSWORD|POSTGRES_PASSWORD|NGINX_DOMAIN_NAME|DB_ENGINE)" .env
# Verifique a correção da sintaxe
cat .env | grep -v '^#' | grep '=' | wc -l
💡 Notas sobre a verificação das variáveis de ambiente
nano ./.env - abre o arquivo de configuração no editor
grep -E "..." .env - verifica a presença das variáveis-chave:
HOST_IP— o endereço IP ou domínio do servidorNGINX_DOMAIN_NAME— o domínio do NGINXDB_ENGINE— tipo de banco de dados:mysqloupgsqlMYSQL_PASSWORD/DB_PASSWORD— senha do MySQL para a aplicação e o contêiner do banco de dados (devem coincidir)POSTGRES_PASSWORD— senha do PostgreSQL (usada tanto pela aplicação quanto pelo contêiner do banco de dados)
cat .env | grep -v '^#' | grep '=' | wc -l - conta o número de variáveis
Todos os parâmetros de configuração (banco de dados, e-mail, LDAP, proxy e outros) são lidos pela aplicação diretamente das variáveis de ambiente do arquivo .env. Não é necessário editar backend/config/config.ini nem backend/config/phinx.php — eles já estão configurados para funcionar via .env.
5.1 Migração do cache.bin (somente ao atualizar a partir da versão ≤ v141856)#
⚠️ Importante: Esta etapa é necessária somente se a atualização for a partir da versão v141856 ou anterior. Se a versão atual do orchestrator for superior a v141856, pule esta seção.
Ao atualizar a partir da versão ≤ v141856, o arquivo cache.bin deve ser montado dentro do contêiner orchestrator.
Adicione a seguinte linha à seção volumes do serviço orchestrator no arquivo docker-compose.yml:
orchestrator:
...
volumes:
- orchestrator-storage:/opt/SherpaOrchestrator/backend/Storage
- ./backend/config:/opt/SherpaOrchestrator/backend/config:z
- ./path/to/cache.bin:/opt/SherpaOrchestrator/backend/app/cache.bin # adicione esta linha
Substitua ./path/to/cache.bin pelo caminho real do arquivo cache.bin no servidor.
6. Inicialização dos contêineres#
# Inicie os serviços com o perfil de BD selecionado
# Opção 1: MariaDB
docker compose --profile mariadb up -d
# Opção 2: PostgreSQL
docker compose --profile pg up -d
# Se o VNC for necessário (opcional), adicione o perfil vnc:
# Opção 1: MariaDB + VNC
docker compose --profile mariadb --profile vnc up -d
# Opção 2: PostgreSQL + VNC
docker compose --profile pg --profile vnc up -d
# Se o Vault for necessário (opcional), adicione o perfil vault:
# Opção 1: MariaDB + Vault
docker compose --profile mariadb --profile vault up -d
# Opção 2: PostgreSQL + Vault
docker compose --profile pg --profile vault up -d
# Combinação de perfis: MariaDB + VNC + Vault
docker compose --profile mariadb --profile vnc --profile vault up -d
💡 Notas sobre a inicialização dos contêineres
docker compose --profile <mariadb|pg> up -d - inicia os serviços em segundo plano com o banco de dados selecionado
-d- modo detached (modo em segundo plano)
--profile vnc - o perfil VNC é opcional e inicia orchestrator-vnc-proxy
- Necessário apenas se os robôs usarem VNC para controlar a área de trabalho
- Adicione-o a qualquer combinação de perfis
docker compose --profile <mariadb|pg> --profile vault up -d - inicia o sistema com Vault
- O perfil
vaulté opcional e é usado apenas quando um cofre de segredos e a migração para o Vault forem necessários
Verificação da inicialização:
docker compose ps- mostra o status de todos os contêineresdocker compose logs -f orchestrator- mostra os logs de inicialização em tempo real
A inicialização do Vault e a migração de segredos são tratadas em um guia separado:
Após uma atualização bem-sucedida, o sistema Sherpa Orchestrator estará pronto para uso.
Migração do indicador de captura nos logs#
Esta seção se aplica a uma versão com 20261006120000_add_log_has_file.php. Antes da atualização são necessários um backup do banco e uma janela de manutenção. A conta de migração precisa de permissões para alterar tabelas e criar gatilhos. O PostgreSQL também exige permissão para criar a função.
A migração segue esta sequência:
Os processos da aplicação devem ser interrompidos, mantendo o banco disponível.
As migrações habituais do Phinx devem ser executadas no contêiner da nova versão para o mecanismo selecionado.
Após a migração, esta consulta deve confirmar que nenhuma linha está sem o indicador de captura:
SELECT COUNT(*) FROM orchestrator.logs WHERE has_file IS NULL;A aplicação pode ser iniciada quando o resultado for
0.
A migração adiciona orchestrator.logs.has_file e instala gatilhos para registros novos e alterados. As linhas existentes são preenchidas em lotes de até 100. As capturas antigas são lidas uma vez, portanto a duração depende do volume de dados. A alteração do esquema pode bloquear a tabela.
Após uma interrupção, a causa deve ser corrigida e as migrações executadas novamente. Linhas já preenchidas são ignoradas. A opção --fake não deve ser usada.
O formato da resposta da API e a obtenção de capturas são mantidos. A tabela de arquivo não muda. Para reverter, primeiro é necessário parar a aplicação e restaurar o código que não usa has_file. Depois a migração pode ser revertida. As capturas não são excluídas.