Atualização¶
Uma nova versão é sempre extraída para um diretório separado. Não deve ser copiada por cima da
instalação existente nem extraída diretamente nela. O novo update.sh atualiza depois exatamente
a instância indicada como argumento.
Preparação e cópia de segurança¶
Antes de cada atualização, deve existir uma cópia de segurança completa e verificada. Inclui pelo menos:
O diretório completo da instância, em especial
core/config/QisutuConfig.pmvar/secure/security.keyA base de dados
Personalizações próprias do Apache, proxy, TLS e systemd
Se necessário, anexos externos ou localizações de armazenamento ligadas
security.key é indispensável para restaurar segredos encriptados de correio, OAuth e
autenticação de dois fatores. Guarde-o protegido juntamente com a cópia de segurança correspondente
da instância.
Transferir 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 utilizar naturalmente o 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 apresenta antes da confirmação o caminho de
instalação, o identificador da instância, o caminho Web, a base de dados e o serviço systemd.
Cancele se algum desses valores não corresponder à instância pretendida.
Processo de atualização¶
O script executa, entre outros, os seguintes passos:
Verificação das somas de controlo da versão, versões, ficheiro de esquema, sintaxe Perl e registo de programas.
Criação opcional de um dump adicional da base de dados. Verifique antes o espaço livre em
/var/backups.Ativação do modo de manutenção, paragem do daemon da instância e bloqueio de novas recolhas de correio.
Atualização de todos os ficheiros de programa geridos pela versão; são adicionados novos ficheiros e removidos ficheiros geridos que já não são publicados.
Preservação dos ficheiros locais da instância, configurações, registos, dados de execução e chave de segurança.
Comparação do esquema da base de dados e execução de todas as migrações SQL e Perl ainda não registadas.
Nova verificação do estado de destino e arranque 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, inicie sessão, verifique as versões apresentadas do Qisutu e da base de dados e teste pelo menos o início de sessão, a vista de tickets, a recolha e o envio de e-mails. Com várias instâncias, esta verificação é efetuada separadamente para cada instância atualizada.
Atualização falhada¶
Não execute o script repetidamente sem analisar a causa. Guarde a saída e os registos, verifique o espaço livre, o acesso à base de dados, as permissões dos ficheiros e o estado do serviço. Se o estado não for claro, restaure em conjunto a cópia de segurança completa previamente verificada do diretório do programa e da base de dados.