Upgrade Jira to przyjemna czynność ale potrafi również zaskoczyć. Podstawą jest tu spisana i przetestowana procedura. Ponadto z czasem łatwo wpaść w rutynę i popełnić błąd. W niniejszym poście chcę podzielić się z Wami swoim sposobem na podniesienie wersji Jira.
Z oficjalną dokumentacją można zapoznać się tu, warto również przejść przez upgrade checklist. Ja przedstawię listę, którą wypracowałem sobie na podstawie własnych doświadczeń związanych z upgrade aplikacji na systemach Linux oraz Windows. Zmienia się ona w zależności od release i upgrade notes dodatków oraz samej aplikacji. Zachęcam też do podzielenia się spostrzeżeniami w komentarzu lub na contact [at] jiraforthepeople.com.
Przygotowanie
- zawieszenie bannera (https://your-jira-instance/secure/admin/EditAnnouncementBanner!default.jspa) oraz poinformowanie pracowników za pomocą firmowego komunikatora
- banner warto umieścić z odpowiednim wyprzedzeniem
- zapoznanie się z release notes oraz upgrade notes dla docelowej wersji Jira
- np. dla wersji 8.12: release notes, upgrade notes
- przygotowanie ważniejszych release notes dla użytkowników
- wykonanie backupu
- xml: https://your-jira-instance/secure/admin/XmlBackup!default.jspa
- backup bazy danych
- wyłączenie cronów działających na serwerze
- wyciszenie monitoringu
- Jira będzie chwilowo niedostępna, jeśli w Twojej firmie monitorowane jest jej działanie, wycisz je na ten czas
- pobranie JIRA w wersji x.x.x:
- wykonanie pre upgrade checks za pomocą natywnego narzędzia w Jira: https://your-jira-instance/plugins/servlet/troubleshooting/pre-upgrade/
- narzędzie sprawdza m.in. czy licencje aplikacji pozwalają na podniesienie do konkretnej wersji
- wykonanie Jira update check https://your-jira-instance/plugins/servlet/upm?source=side_nav_manage_addons
- tu sprawdzamy czy dodatki będą kompatybilne z docelową wersją Jira
- niektóre z nich będzie można podnieść od razu, inne dopiero po upgrade Jira
- upewnienie się, że licencje pozwalają na podniesienie dodatków do wymaganych wersji
- zapoznanie się z release i upgrade notes dla dodatków
- należy zwrócić uwagę czy nowa wersja dodatku nie staje się płatna lub nie zawiera breaking changes
- wyłączenie niekompatybilnych dodatków
- zrobienie upgrade dodatków
- w zależności od potrzeb można zrobić upgrade do najnowszej wersji dodatku lub innej, której potrzebujemy
- przy każdym upgrade zawsze mam w drugim oknie włączone śledzenie logów na serwerze:
tail -f /opt/jira-home/log/atlassian-jira.log
Instalacja
- nadanie uprawnień do uruchomienia instalatora
- chmod +x ./atlassian-jira-software-8.12.3-x64.bin
- instalacja w aplikacji screen, co zabezpieczy nas przed konsekwencjami nagłego rozłączenia nas z serwerem
- screen -S upgrade_jira
- dodatkowo zawsze otwieram dwa dodatkowe okna, których śledzę logi
- tail -f /opt/jira-home/log/atlassian-jira.log
- tail -f /opt/jira-home/log/atlassian-jira.log | grep ERROR
- uruchomienie instalatora
- skopiowanie na bok customowych zmian
- instalator poda nam listę plików, które zostały zmodyfikowane względem oryginalnej konfiguracji Jira, powinniśmy skopiować je sobie na bok
Po instalacji
- przeniesienie customowych zmian
- do porownania plków używam narzędzia vimdiff, np.
- vimdiff stary_server.xml nowy_server.xml
- w przypadku potrzeby przeniesienia zaufanych certyfikatów jira polecam mój autorski skrypt, którego działanie opisałem w osobnym poście
- wyłączenie automatycznego reindexu
- w pliku jira-config.properties należy ustawić: upgrade.reindex.allowed=false
- usunięcie zawartości /opt/jira-home/plugins/.osgi-plugins/
- może zawierać nieaktualne dane po upgrade dodatków, zostanie ona odtworzona zgodnie z najnowszymi wersjami
- do porownania plków używam narzędzia vimdiff, np.
- włączenie JIRA
- upgrade Jira Service Desk do odpowiedniej wersji
- https://your-jira-instance/plugins/servlet/applications/versions-licenses
- upgrade i włączenie pozostałych dodatków dodatków
- weryfikacja Jira health checks
- https://your-jira-instance/plugins/servlet/troubleshooting/view/
- weryfikacja działania Application Links
- https://your-jira-instance/plugins/servlet/applinks/listApplicationLinks
- weryfikacja działania synchronizacji słowników uzytkowników
- https://your-jira-instance/plugins/servlet/embedded-crowd/directories/list
- wykonanie podstawowych operacji w Jira (create issue, delete issue, comment, worklog)
- wykonanie pełnego reindexu Jira: https://your-jira-instance/secure/admin/IndexAdmin.jspa
- uwaga, podczas pełnego reindexu Jira będzie niedostępna
- włączenie cronów na serwerze
- włączenie monitoringu
- ściągnięcie Annoucement Banner
- poinformowanie o zakończeniu upgrade, podanie Release Notes