Всем привет!

В этой статье поговорим о том, как сменить пароль пользователя admin во встроенной базе данных Atlassian Jira и Confluence.

Часто при миграции серверов Jira и Confluence возникает необходимость поставить бэкап Jira и Confluence на свой локальный сервер для того, чтобы проанализировать состояние Jira или Confluence или просто почистить Jira и Confluence от ненужных объектов.

Для этого необязательно разворачивать postgres, oracle, mysql или sql server. Достаточно использовать встроенную H2 базу данных. H2 нельзя использовать в продакшене, так как она может упасть в самый неподходящий момент, но для какой-то временной неважной инсталляции она хорошо подходит.

Итак мы установили локальные Jira и Confluence и импортировали туда бэкапы. Начинаем логиниться под пользователем admin и у нас ошибка, что имя пользователя или пароль неверные.

Нужно поправить пароль в БД. Как это сделать?

Здесь разработчики Atlassian о нас позаботились. В развернутые Jira и Confluence входит H2 database manager, который находится по следующему пути: jira_installation или confluence_installation/webapp/WEB-INF/lib/h2-X.X.XXX.jar. В моем случае имя jar файла — h2-1.3.176.

Запускаем этот файл (обычно двойное нажатие мыши помогает) и получаем вот такой экран:



Поле JDBC URL содержит путь к H2 базе данных, которая находится в jira_home/database. При указании пути нужно быть внимательным и указать корректный путь, так как, если путь будет не корректен, то ошибка не появится. Будет создана пустая база данных. Отличить пустую базу данных можно следующим образом. В базе данных будет только одна схема, и она будет называться INFORMATION_SHCEMA. Вот как она выглядит:



Корректная база данных выглядит вот так:



Мы видим большое количество таблиц с префиксом AO_. Это хороший признак того, что перед нами правильная база данных.

После этого мы можем выполнять наши SQL запросы для установки пароля.

Для Jira (пользователь admin пароль sphere):

update cwd_user set credential='uQieO/1CGMUIXXftw3ynrsaYLShI+GTcPS4LdUGWbIusFvHPfUzD7CZvms6yMMvA8I7FViHVEqr6Mj4pCLKAFQ==' where user_name='admin';

Для Confluence (пользователь admin пароль admin):

update cwd_user set credential='{PKCS5S2}8WEZjkCbLWysbcbZ5PRgMbdJgJOhkzRT3y1jxOqke2z1Zr79q8ypugFQEYaMoIZt' where user_name='admin';

Теперь можно отключатся и запускать Jira и Confluence.

Важно знать, что H2 база данных поддерживает только одно подключение в момент времени. Поэтому для запуска Jira и Confluence Вы должно выйти из H2 database manager. А при работе в H2 database manager Вы должны Jira и Confluence не должны быть запущены.

Комментарии (22)


  1. Graf54r
    09.12.2018 11:40

    H2 нельзя использовать в продакшене, так как она может упасть в самый неподходящий момент

    Откуда такая информация?


    1. aleme Автор
      09.12.2018 13:31

      Это пишет сам Atlassian. И у меня есть опыт падений H2. Причем она падает так, что восстановить можно только из бэкапа.


  1. ky0
    09.12.2018 11:46
    +1

    Статья, достойная поста в личном бложике.


    1. Andrey_V_Markelov
      10.12.2018 20:45

      А почему? Какие критерии?


      1. ky0
        10.12.2018 20:47

        То, что можно загуглить в официальной базе знаний или на SO — очевидно, не самая подходящая тема для статьи, в том числе по объёму.


        1. aleme Автор
          10.12.2018 20:52

          Загуглить можно практически все. Я столкнулся с тем, что многие не знают, что есть H2 manager в установленных Jira и Confluence. Да, это написано. Но это не означает, что все это знают. Я хотел это подсветить.


          1. ky0
            10.12.2018 20:58

            Вы пишете, что не предполагаете использование в продакшене. Тогда где и зачем, позвольте поинтересоваться? Для личных нужд или проекта выходного дня? — смотрите комментарий про личный бложек.

            Любая продукционная инсталляция джиры/конфлюенса, если местный сисадмин не совсем наркоман, будет использоваться с нормальной СУБД.


            1. aleme Автор
              10.12.2018 21:03

              Я написал — при миграциях. Когда делаешь миграции, то не предполагается работа более одного пользователя на временном инстансе, который нужен для того, чтобы исправить ошибки или внести некоторые корректировки для того, чтобы миграция прошла успешно.


              1. ky0
                10.12.2018 21:08

                Извините, я всё равно не очень понимаю. Внутри моей головы миграция может быть чего-то, уже работающего — и в случае джиры, если это что-то представляет собой важную часть процессов предприятия, то оно работает на нормальном железе, стабильной ОС и СУБД, регулярно бэкапится и т. д. И ничего из этого ни при миграции, ни при обновлении версии не меняется. И простора для внезапного появления откуда-то «изкоробочной» Н2 я тут не вижу.


                1. aleme Автор
                  10.12.2018 21:12

                  Хорошо. Как Вы будете делать миграцию двух Jira Server на новый сервер (Вам нужно сначала сделать тестовую миграцию)? Или нужно мигрировать данные из Jira Server в уже существующий Jira Cloud?


                  1. ky0
                    10.12.2018 21:19

                    А проблема-то в чём? Да, это довольно геморройная задача, но вполне решаемая и задокументированная в KB. До сих пор не вижу, зачем при этом менять нормальную СУБД на что-то другое.


                    1. aleme Автор
                      10.12.2018 21:32

                      Нет никаких проблем. Просто я это делаю через atlassian sdk. Поднимаю инстанс любой версии и дальше устанавливаю туда бэкап. Это занимает минуты.
                      Можно, конечно, иметь докеры с постгрес и джирой. Их поднимать. Но это требует гораздо больше ресурсов и знаний для подготовки таких докеров, нежели использовать поднятие инстанса из SDK и дальше все делать. А мне кажется, что свое время нужно экономить и решать задачи эффективно. В данном случае postgres не нужен, это лишнее.


                      1. ky0
                        10.12.2018 21:43

                        И часто, позвольте поинтересоваться, у вас происходит слияние нескольких джир или другие операции, требующие восстановления из бэкапа? И если часто — почему вы не в курсе админского пароля? :)


                        1. aleme Автор
                          10.12.2018 21:49

                          Да, я этим постоянно занимаюсь. И не спрашиваю пароли админов у клиентов. Мне это не нужно и им спится спокойнее.


        1. Andrey_V_Markelov
          10.12.2018 21:06

          Все как правило начинают со встроенной бд и это проблема при переходе на прод, если продукт хотят купить. Потом эти вопросы идут в саппорт


          1. ky0
            10.12.2018 21:13

            Я, видимо, какой-то очень упоротый фанат постгреса и внедрения атлассиановских продуктов, раз даже при демонстрации сразу поставил это на нормально настроенную базу — чтобы у пользователей не возникло подсознательного ощущения, что это ПО подтормажвает, даже будучи ещё не нагруженным.


  1. million
    10.12.2018 10:10

    В документации есть правильное решение по смене пароля администратора. Для этого в строку запуска JIRA нужно добавить ключик запуска в однопользовательском режиме. Запускаете, меняете пароль, останавливаете, убираете ключ и запустеете снова.
    И как правильно выше написали Вам: в продакшене НЕЛЬЗЯ использовать базу H2! Неужели трудно поставить PostgreSQL или на крайний случай MySQL. В любом дистрибутиве Linux они есть.


    1. aleme Автор
      10.12.2018 10:12

      Тот способ, который описал я тоже есть в Atlassian Kb:
      confluence.atlassian.com/jira/retrieving-the-jira-administrator-192836.html?_ga=2.208717659.856277697.1543736872-65270402.1526147845
      Зачем ставить postgres или mysql, если можно сделать все с H2, которая ставиться по умолчанию?


      1. million
        10.12.2018 12:30

        Потому что доверия к H2 нет! Это СУБД живет в памяти. В различных исключительных ситуациях данные из памяти теряются не сохраняясь на диск. Для продашена это не допустимо! У меня несколько раз такое было на тестовых экземплярах JIRA. Хорошо что это были тестовые инстансы. А нормальные СУБД такого не допускают.


        1. aleme Автор
          10.12.2018 12:37

          я пишу не про продакшн. Плохо понимаю в чем спор. Не хотите использовать H2, не используйте…


          1. aleme Автор
            10.12.2018 12:54

            И про то, что эта СУБД живет в памяти это не совсем так.


  1. sevikl
    10.12.2018 14:28

    search «Jira и Confluence» 1 of 11 matches.
    а 4 раза на 1 абзац это рекорд.