Zapomniałem hasła admina!

Nie, na szczęście nie na produkcji… Wyciągnąłem z szuflady starego laptopa z zainstalowanym Linuxem, ot tak żeby coś sprawdzić. Po tym jak zrobiłem co miałem zrobić przypomniało mi się, że przecież chyba kiedyś instalowałem na nim Jirę. Szybkie sprawdzenie w konsoli i tak! Okazało się, że jest! Moja radość nie trwała jednak długo.

Otworzyłem przeglądarkę, wszedłem na http://localhost:8080/ i oczom moim ukazał się znajomy widok. Login: admin, hasło: eeeee… No właśnie. Sprawdziłem wszystkie swoje „standardowe” i nic. Przejrzałem notatki, również bez skutku. Zapewne na szybko wybrałem jakieś łatwe do zapamiętania i oczywiste hasło… Tia, oczywiste.

Cóż. Pozostało mi dowiedzieć się jak odzyskać, a raczej pewnie zresetować hasło i przećwiczyć tą operację w praktyce. Czy się udało? Zaraz się dowiesz. Jak zapewne się domyślasz opisywał będę proces odzyskiwania hasła dla Jira w wersji serwer.

Nie taki diabeł straszny

Spodziewałem się, że będzie to coś zbliżonego do rocket science, że czeka mnie dłubanie w bazie danych, czy inne kombinacje, które zajmą sporo czasu. Okazało się jednak, że nie było to zbytnio skomplikowane i całość załatwiłem w czasie nie dłuższym niż 15 minut. Wszytko dzięki temu, że Atlassian dla Jira w wersji 7.0 wzwyż przygotował tryb recovery, znacznie ułatwiający zadanie.

Żeby móc skorzystać z tego trybu, trzeba mieć mieć dostęp do serwera, na którym jest zainstalowana aplikacja a największym minusem jest konieczność dwukrotnego restartu instancji. Z tego powodu jest to operacja do wykonania raczej po godzinach pracy, jeśli odzyskujesz hasło na środowisku produkcyjnym.

Tryb recovery działa na zasadzie stworzenia wirtualnego użytkownika o nazwie recovery_admin, do którego hasło ustawiasz w konfiguracji serwera Tomcat w jego zmiennych środowiskowych. Co ważne, kiedy Jira jest w trybie recovery użytkownicy mogą z niej korzystać tak jakby nic się nie działo.

Tylko uwaga – wspominam o tym na początku artykułu, w przypadku gdyby nie każdy doczytał do końca 😉 Po pierwsze pamiętaj, żeby nie zostawiać Jiry w recovery mode. Jak tylko odzyskasz hasło, skasuj zmienną środowiskową, o której mowa poniżej. Nie zostawiaj konta recovery_admin w systemie. Chociażby z tego powodu, że hasło do tego konta jest zapisane plain textem w plikach konfiguracyjnych. To niezdrowe podejście.

Po drugie, zawsze dobrze jest, żeby był więcej niż jeden user z uprawnieniami Jira Systam Administrator, żeby uniknąć zamieszania. W dużych instancjach produkcyjnych jest to raczej powszechne i wierzę, że tak jest i w Twoim przypadku 🙂

Zmiany w system properties

Tak jak napisałem wyżej, moja Jira jest postawiona na Linuxie. Z tego też powodu dalsze instrukcje będą dotyczyć tego właśnie systemu. Jeśli korzystasz w Windowsa to oczywiście też możesz skorzystać z trybu recovery, jednak operacje po stronie serwera wykonuje się, jak zapewne się domyślasz, trochę inaczej. Niestety nie opisałem tutaj co trzeba zrobić z Windowsem. Będziesz musiał pogooglać… Sorry…

Dobra, dość gadania, teraz konkrety co zrobiłem. Po pierwsze zatrzymałem aplikację:

# /etc/init.d/jira stop

Następnie w Jira installation directory odszukałem katalog /bin a w nim plik setenv.sh Jeśli zainstalowałeś Jirę w domyślnym katalogu to installation directory jest taka: /opt/atlassian/jira. Ja do edycji pliku korzystam z vim. Czyli całość w moim przypadku wyglądała tak:

# vim /opt/atlassian/jira/bin/setenv.sh

W pliku znalazłem fragment (powinien być gdzieś w okolicach początku):

#
#  Occasionally Atlassian Support may recommend that you set some specific JVM arguments.  You can use this variable below to do that.
#
JVM_SUPPORT_RECOMMENDED_ARGS=""

Do JVM_SUPPORT_RECOMMENDED_ARGS pomiędzy "" dodałem -Datlassian.recovery.password=tu-wstaw-haslo Wyglądało to tak:

#
#  Occasionally Atlassian Support may recommend that you set some specific JVM arguments.  You can use this variable below to do that.
#
JVM_SUPPORT_RECOMMENDED_ARGS="-Datlassian.recovery.password=dupa.8"

Przy okazji, słyszałeś kiedyś określenie „hasło lubelskie”? 🙂 dupa.8 to właśnie to hasło. Więcej o jego historii możesz poczytać chociażby tutaj: https://www.i-slownik.pl/2358,dupa-8/

Teraz uruchomiłem Jira:

# /etc/init.d/jira start

Po stronie serwera to na razie wszystko.

Logowanie do aplikacji

Po wprowadzeniu zmian po stronie serwera i odpaleniu aplikacji reszta jest prosta. Odpaliłem przeglądarkę i ponownie wszedłem na http://localhost:8080/ Zobaczyłem klasyczny ekran logowania z tą różnicą, że została dodana informacja o tym, że Jira pracuje w trybie recovery. Pozostało mi się zalogować na usera recovery_admin za pomocą hasła, które ustawiłem wyżej:

Po udanym logowaniu postępowałem już w zwykły sposób „trybik” > User management żeby dostać się do listy userów:

Jak widać okazało się, że username to jednak nie był admin więc hasło mogłem zgadywać długo i namiętnie. Musiałem wpaść na pomysł, żeby użytkownika admin nazwać inaczej 😉 Pozostało mi zmienić hasło. Tutaj też nie ma żadnej filozofii. Kliknąłem na Seweryn:

Potem po prawej na górze Actions i zmieniłem hasło:

I w zasadzie to wszystko. Dla sprawdzenia czy jest OK, wylogowałem się z recovery_admin i zalogowałem na seweryn. Tadam! Wszystko działa. Pozostało posprzątać.

Sprzątanie

Tak jak napisałem wyżej nie powinno się zostawiać Jiry w trybie recovery więc musiałem przywrócić poprzednie ustawienia w plikach.

Zatrzymałem Jirę:

# /etc/init.d/jira stop

Wyedytowałem setenv.sh:

# vim /opt/atlassian/jira/bin/setenv.sh

Usunąłem to co dodałem. Więc fragment konfiguracji powinien wyglądać tak:

#
#  Occasionally Atlassian Support may recommend that you set some specific JVM arguments.  You can use this variable below to do that.
#
JVM_SUPPORT_RECOMMENDED_ARGS=""

Zapisałem plik, wystartowałem Jirę:

# /etc/init.d/jira start

I tyle 🙂 Po uruchomieniu aplikacji mogłem spokojnie logować się na swoje konto admina. Jak widzisz cała operacja nie była zbyt skomplikowana. Mimo wszystko życzę Ci żebyś nigdy nie musiał jej wykonywać 😉



Skomentuj:

Twój adres email nie zostanie opublikowany

Site Footer