Обновление Bitnami Redmine Stack
В какой-то момент мы наконец-то созрели до установки системы управления проектами. Я предложил Redmine, так как был уже с ним знаком по прошлой работе. Альтернатив (кроме SharePoint) никто не предложил, потому решено было ставить Redmine.
Как вы помните, от интернета мы изолированы, что вносит определённые проблемы в установку ПО. Здесь эти проблемы вновь себя проявили, но слава небесам, мы такие не одни на планете, и уже есть решение на такие ситуации - это Bitnami Stack, то есть установка всё-в-одном: и БД, и само приложение, и сопутствующие необходимые компоненты, вроде Ruby on Rails и прочего, и всё это ставится в один каталог, а самое главное - не требуется соединение с интернетом.
Ну поставить поставили, однако через некоторое время потребовалось обновить его, так как в новой версии исправили некоторые ошибки. По инструкции с сайта выполнить обновление не удалось, так что после продолжительного секса я написал пошаговую дополненную инструкцию, учитывающую ряд пропущенных нюансов.
Резервная копия
Итак, текущая версия 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.
Вот скрин настроек:
Здесь Учётная запись и Пароль - какая-либо техническая учётная запись, имеющая доступ в домен. По-любому же у вас есть такая? Если нет, то можете, наверное, использовать свою.
В Атрибутах ничего изменять, скорее всего, не понадобится, это достаточно стандартные значения.
Social networks
Zuck: Just ask
Zuck: I have over 4,000 emails, pictures, addresses, SNS
smb: What? How'd you manage that one?
Zuck: People just submitted it.
Zuck: I don't know why.
Zuck: They "trust me"
Zuck: Dumb fucks