Цель - интеграция Bitnami redmine 2.х stack и Collabnet SVN (csvn) на платформе Windows 7. От стека нам нужны только ruby, imagemagick и redmine.
- Apache 2 с проинтегрированным в него через WebDav svn, с поддержкой ssl, ставится "из-коробки" в пакете Collabnet subversion.
- В качестве бэкенда базы данных привык использовать MySQL, ставим free community edition от Oracle.
- Для внутренней интеграции redmine и subversion, на сервере с redmine и Collabnet svn поднимаем локальный сервер subversion, обслуживающий запросы по протоколу svn.
- В консоли управления csvn cоздаем рулы для группы, например, RedmineBT (Redmine Bug Track), для доступа к репозиториям на чтение.
- Создаем в группе RedmineBT пользователя, например redmine, с паролем, например, pwd. От имени этого пользователя redmine будет считывать информацию из хранилищ subversion. Логин и пароль для этого пользователя впоследствие надо будет вписывать в настройках хранилищ для проектов redmine.
- Для рассылки автоматических оповещений, устанавливаем на Windows fake sendmail, настраиваем его для работы через специальный аккаунт. Я, например, завел на gmail bugtrack.vgromov@gmail.com.
Далее - начинаем разгребать внутренности стека Bitnami redmine.
- Инсталлируем Bitnami Redmine stack под виртуальной машиной.
- Делаем дамп созданной в стековом MySQL базы данных redmine. Дамп впоследствие заливаем на наш основной сервер.
- Копируем из стека на наш основной сервер 3 директории: ruby, redmine, imagemagick.
- Создаем на основном сервере записи для запуска сервисов кластера redmine. Проще всего подправить соответствующие батники из стека, лежащие в поддиректории redmine/scripts:
@echo off rem -- Check if argument is INSTALL or REMOVE set RUBY_ROOT=<путь к корню ruby> set REDMINE_ROOT=<путь к корню redmine> if not ""%1"" == ""INSTALL"" goto remove "%REDMINE_ROOT%/scripts/winserv.exe" install "redmineThin1" -start auto "%RUBY_ROOT%/bin/ruby.exe" "%RUBY_ROOT%/bin/thin" start -p 3001 -e production -c "%REDMINE_ROOT%" --prefix /redmine net start redmineThin1 >NUL "%REDMINE_ROOT%/scripts/winserv.exe" install "redmineThin2" -start auto "%RUBY_ROOT%/bin/ruby.exe" "%RUBY_ROOT%/bin/thin" start -p 3002 -e production -c "%REDMINE_ROOT%" --prefix /redmine net start redmineThin2 >NUL goto end :remove rem -- STOP SERVICE BEFORE REMOVING net stop redmineThin1 >NUL "%REDMINE_ROOT%/scripts/winserv.exe" uninstall "redmineThin1" net stop redmineThin2 >NUL "%REDMINE_ROOT%/scripts/winserv.exe" uninstall "redmineThin2" :end
- Вносим правки в файл конфигурации Apache из пакета Collabnet svn. Нам нужно, чтобы он подгружал модули поддержки proxy и proxy_balancer. Они, слава Труду, входят в поставку Apache от Collabnet.
- Добавляем в конец конфигурационного файла Apache инклюд файла конфигурации кластера redmine, лежит в поддиректории redmine/conf.
- Ну и наконец, инструктируем кластер redmine работать через https, который уже должен быть включен через консоль управления Collabnet svn. В итоге, подправленный файл redmine.confдолжен выглядеть так:
<Location /redmine> RequestHeader set X_FORWARDED_PROTO 'https' </Location> ProxyPass /redmine balancer://redminecluster ProxyPassReverse /redmine balancer://redminecluster <Proxy balancer://redminecluster> BalancerMember http://127.0.0.1:3001/redmine BalancerMember http://127.0.0.1:3002/redmine </Proxy>
Все готово к началу работы. Запускаем службы:
- локальный сервер svn
- два thin-a кластера redmine
- Collabnet svn Apache
Проверяем работу redmine, открываем интернет в браузере:
https://<your server address>/redmine