Aktualizacja¶
Nowe wydanie jest zawsze rozpakowywane do osobnego katalogu. Nie wolno go kopiować na istniejącą
instalację ani bezpośrednio do niej rozpakowywać. Nowy update.sh aktualizuje następnie dokładnie
instancję podaną jako argument.
Przygotowanie i kopia zapasowa¶
Przed każdą aktualizacją musi być dostępna pełna, zweryfikowana kopia zapasowa. Obejmuje ona co najmniej:
Pełny katalog instancji, w szczególności
core/config/QisutuConfig.pmvar/secure/security.keyBaza danych
Własne dostosowania Apache, proxy, TLS i systemd
W razie potrzeby zewnętrzne załączniki lub podłączone lokalizacje pamięci
security.key jest niezbędny do odtworzenia zaszyfrowanych danych tajnych poczty, OAuth i
uwierzytelniania dwuskładnikowego. Przechowuj go bezpiecznie wraz z odpowiednią kopią instancji.
Pobierz wydanie¶
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
Przy aktualizacji do późniejszej wersji należy oczywiście użyć adresu URL i nazwy katalogu tej wersji docelowej.
Uruchom aktualizację¶
Instancja produkcyjna:
sudo ./update.sh /opt/qisutu
Dodatkowa instancja:
sudo ./update.sh /opt/qisututest
Aktualizator odczytuje var/install/instance.conf i przed potwierdzeniem pokazuje ścieżkę
instalacji, identyfikator instancji, ścieżkę WWW, bazę danych i usługę systemd. Przerwij, jeśli
któraś z tych wartości nie należy do żądanej instancji.
Przebieg aktualizacji¶
Skrypt wykonuje między innymi następujące kroki:
Sprawdzenie sum kontrolnych wydania, wersji, pliku schematu, składni Perla i rejestracji programów.
Opcjonalne utworzenie dodatkowego zrzutu bazy danych. Wcześniej sprawdź wolne miejsce w
/var/backups.Włączenie trybu konserwacji, zatrzymanie demona instancji i zablokowanie nowych pobrań poczty.
Aktualizacja wszystkich plików programu zarządzanych przez wydanie; nowe pliki są dodawane, a niepublikowane już pliki zarządzane są usuwane.
Zachowanie lokalnych plików instancji, konfiguracji, dzienników, danych wykonawczych i klucza bezpieczeństwa.
Uzgodnienie schematu bazy danych i wykonanie wszystkich jeszcze niezarejestrowanych migracji SQL i Perl.
Ponowne sprawdzenie stanu docelowego i uruchomienie demona.
Kontrola po aktualizacji¶
Po pomyślnym zakończeniu sprawdź:
systemctl status qisutu-daemon.service
journalctl -u qisutu-daemon.service --since today
Następnie zaloguj się, sprawdź wyświetlane wersje Qisutu i bazy danych oraz przetestuj co najmniej logowanie, widok zgłoszenia, pobieranie i wysyłanie poczty. Przy wielu instancjach kontrolę wykonuje się osobno dla każdej zaktualizowanej instancji.
Nieudana aktualizacja¶
Nie uruchamiaj skryptu wielokrotnie bez analizy przyczyny. Zapisz wynik i dzienniki, sprawdź wolne miejsce, dostęp do bazy danych, uprawnienia plików i stan usługi. Jeśli stan nie jest jednoznaczny, przywróć razem wcześniej zweryfikowaną pełną kopię katalogu programu i bazy danych.