Declaration of VAR

and some other stuff

Обновление Bitnami Redmine Stack

2015-04-19 13:32:06 +0300

2015-04-19 13:32:06 +0300 | Comments

В какой-то момент мы наконец-то созрели до установки системы управления проектами. Я предложил Redmine, так как был уже с ним знаком по прошлой работе. Альтернатив (кроме SharePoint) никто не предложил, потому решено было ставить Redmine.

Как вы помните, от интернета мы изолированы, что вносит определённые проблемы в установку ПО. Здесь эти проблемы вновь себя проявили, но слава небесам, мы такие не одни на планете, и уже есть решение на такие ситуации - это Bitnami Stack, то есть установка всё-в-одном: и БД, и само приложение, и сопутствующие необходимые компоненты, вроде Ruby on Rails и прочего, и всё это ставится в один каталог, а самое главное - не требуется соединение с интернетом.

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

Вкратце последовательность такая:

  1. Сделать резервную копию;
  2. Удалить старую версию;
  3. Установить новую версию;
  4. Восстановить базу данных из резервной копии;
  5. Восстановить из резервной копии каталог с аттачами, темами оформления, плагинами;
  6. Выполнить команды по миграции.

Резервная копия

Итак, текущая версия Bitnami Redmine Stack установлена по пути D:\redmine\.

Первым делом останавливаем все сервера через D:\redmine\manager-windows.exe:

И копируем весь каталог куда-нибудь в безопасное место, это будет резервная копия на всякий случай.

Теперь делаем дамп базы данных. Запускаем сервер MySQL Database:

Открываем консоль (cmd.exe), идём в D:\redmine\mysql\bin\. Команду использовал не из инструкции, а вот отсюда:

mysqldump.exe -u root -p bitnami_redmine -r redmine.sql

Оно спросит пароль, и вот тут попробуй-ка угадай его? Это ни фига не тот, который прописан в D:\redmine\apps\redmine\htdocs\config\database.yml. Через какое-то время я нашёл, что оно просит пароль, который вы указывали при установке всего пакета - ваш админский пароль от Redmine. Вводим его, оно делает дамп. Файл с дампом будет лежать в том же каталоге, что и mysqldump.exe, если не укажете другой путь. Копируем его тоже в какое-то безопасное место.

Ещё момент: если у вас MySQL установлен не на стандартном порту 3306, а например на 3307, то в команду надо дописать параметр с портом, например:

mysqldump.exe --port=3307 -u root -p bitnami_redmine -r redmine.sql

У нас оно именно там и стоит, потому дальше все команды будут с портом 3307, имейте это в виду.

Установка новой версии

Останавливаем сервер MySQL Database, закрываем приложение. Удаляем текущую версию Bitnami Redmine Stack через деинсталлятор D:\redmine\uninstall.exe.

Загружаем новую версию, запускаем установку.

Обратите внимание на это окно:

Пароль, который вы укажете здесь, будет админским паролем для входа в Redmine и также паролем для root в mysql. Как-то это информация выпала из инструкций на официальном сайте. Ну или я невнимательно читал. Само собой, желательно, чтобы этот был тот же пароль, что и в старой версии.

Далее выбираете те же порты, что и в предыдущей установке. Настройку почты можно пропустить - потом просто скопируете старый конфиг.

На этом установка завершена.

Восстановление базы данных

Открываем опять D:\redmine\manager-windows.exe, останавливаем все сервера, кроме MySQL Database:

Открываем консоль (cmd.exe), идём в D:\redmine\mysql\bin\, подключаемся:

mysql.exe --port=3307 -u root -p

Пароль - админский, который вы вводили при установке Bitnami Redmine Stack.

Дальше вот эти команды:

drop database bitnami_redmine;
create database bitnami_redmine;
grant all privileges on bitnami_redmine.* to 'bitnami'@'localhost' identified by 'ТУТ_ПАРОЛЬ_ИЗ_КОНФИГА';
quit;

Пароль из конфига - это из этого: D:\redmine\apps\redmine\htdocs\config\database.yml

Теперь надо восстановить базу из бэкапа. Копируем сохранённый ранее redmine.sql в каталог к mysql.exe. Далее, опять же, по инструкции выдавало различные мистические ошибки, а проблема-то была в кодировке. В общем, благодаря всё тому же чуваку:

mysql.exe --port=3307 -u root -p --default-character-set=utf8 bitnami_redmine

И там:

SOURCE redmine.sql

Всё, база восстановлена. Файл с дампом можно удалить.

Копирование файлов, миграция БД

Копирование файлов:

  • старый конфиг с настройками почты: %КАТАЛОГ_РЕЗЕРВНОЙ_КОПИИ%\redmine\apps\redmine\htdocs\config\configuration.yml;
  • файлы аттачей: %КАТАЛОГ_РЕЗЕРВНОЙ_КОПИИ%\redmine\apps\redmine\htdocs\files\;
  • темы оформления: %КАТАЛОГ_РЕЗЕРВНОЙ_КОПИИ%\redmine\apps\redmine\htdocs\public\themes\;
  • также ещё плагины, но мы их пока не используем, потому копировать было нечего.

Теперь в консоль, там запустить D:\redmine\use_redmine.bat - переход в окружение Bitnami Redmine Stack. Появится новое окно консоли, в нём надо перейти в каталог с установленным приложением (D:\redmine\apps\redmine\htdocs\).

Теперь выполняем команды. Переезд на новую базу:

ruby bin/rake db:migrate RAILS_ENV="production"

И завершающие. Вот на этом шаге в какой-то момент у меня перестали запускаться сервера - стартуют сначала все, а потом остаются только Apache и MySQL, а редмайновские падают. Потому с того момента я этот шаг выполнять перестал. Но вообще, в мануле он есть, потому если у вас проблем нет, то выполняйте:

ruby bin/rake redmine:plugins RAILS_ENV="production"
ruby bin/rake tmp:cache:clear
ruby bin/rake tmp:sessions:clear

Всё, можно перезапускать сервера:

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

Настройка аутентификации через Active Directory

Бонусом выложу скриншот настроек для аутентификации с помощью Active Directory. То есть, для входа в систему пользователю не нужно запоминать отдельный пароль, так как будет использоваться его учётная запись из домена, например sales\ivanovii.

Вот скрин настроек:

Здесь Учётная запись и Пароль - какая-либо техническая учётная запись, имеющая доступ в домен. По-любому же у вас есть такая? Если нет, то можете, наверное, использовать свою.

В Атрибутах ничего изменять, скорее всего, не понадобится, это достаточно стандартные значения.