Atualização¶
Uma nova versão sempre é extraída em um diretório separado. Ela não deve ser copiada sobre a
instalação existente nem extraída diretamente nela. O novo update.sh atualiza depois exatamente
a instância informada como argumento.
Preparação e backup¶
Antes de cada atualização, deve existir um backup completo e verificado. Ele inclui pelo menos:
O diretório completo da instância, especialmente
core/config/QisutuConfig.pmvar/secure/security.keyO banco de dados
Personalizações próprias de Apache, proxy, TLS e systemd
Se necessário, anexos externos ou locais de armazenamento conectados
security.key é indispensável para restaurar segredos criptografados de e-mail, OAuth e
autenticação de dois fatores. Guarde-o protegido junto com o backup correspondente da instância.
Baixar a versão¶
cd /tmp
wget https://ftp.qisutu.de/qisutu-1.0.2.tar.gz
tar xzf qisutu-1.0.2.tar.gz
cd qisutu-1.0.2
Ao atualizar para uma versão posterior, deve-se usar naturalmente a URL e o nome do diretório dessa versão de destino.
Iniciar atualização¶
Instância de produção:
sudo ./update.sh /opt/qisutu
Instância adicional:
sudo ./update.sh /opt/qisututest
O atualizador lê var/install/instance.conf e mostra antes da confirmação o caminho de
instalação, o identificador da instância, o caminho web, o banco de dados e o serviço systemd.
Cancele se algum desses valores não corresponder à instância desejada.
Processo de atualização¶
O script realiza, entre outras, as seguintes etapas:
Verificação de checksums da versão, versões, arquivo de esquema, sintaxe Perl e registro de programas.
Criação opcional de um dump adicional do banco de dados. Verifique antes o espaço livre em
/var/backups.Ativação do modo de manutenção, parada do daemon da instância e bloqueio de novas coletas de e-mail.
Atualização de todos os arquivos de programa gerenciados pela versão; novos arquivos são adicionados e arquivos gerenciados que não são mais publicados são removidos.
Preservação dos arquivos locais da instância, configurações, logs, dados de execução e chave de segurança.
Comparação do esquema do banco de dados e execução de todas as migrações SQL e Perl ainda não registradas.
Nova verificação do estado de destino e inicialização do daemon.
Verificação posterior¶
Após a conclusão bem-sucedida, verifique:
systemctl status qisutu-daemon.service
journalctl -u qisutu-daemon.service --since today
Em seguida, faça login, verifique as versões exibidas do Qisutu e do banco de dados e teste pelo menos login, visualização de tickets, coleta e envio de e-mails. Com várias instâncias, essa verificação é realizada separadamente para cada instância atualizada.
Atualização com falha¶
Não execute o script repetidamente sem analisar a causa. Salve a saída e os logs, verifique espaço livre, acesso ao banco de dados, permissões de arquivos e status do serviço. Se o estado não estiver claro, restaure em conjunto o backup completo previamente verificado do diretório do programa e do banco de dados.