BitnamiBitnami

 

 

Цель - интеграция Bitnami redmine 2.х stack и Collabnet SVN (csvn) на платформе Windows 7. От стека нам нужны только ruby, imagemagick и redmine.

 
  1. Apache 2 с проинтегрированным в него через WebDav svn, с поддержкой ssl, ставится "из-коробки" в пакете Collabnet subversion.
  2. В качестве бэкенда базы данных привык использовать MySQL, ставим free community edition от Oracle.
  3. Для внутренней интеграции redmine и subversion, на сервере с redmine и Collabnet svn поднимаем локальный сервер subversion, обслуживающий запросы по протоколу svn.
  4. В консоли управления csvn cоздаем рулы для группы, например, RedmineBT (Redmine Bug Track), для доступа к репозиториям на чтение.
  5. Создаем в группе  RedmineBT пользователя, например redmine, с паролем, например, pwd. От имени этого пользователя redmine будет считывать информацию из хранилищ subversion. Логин и пароль для этого пользователя впоследствие надо будет вписывать в настройках хранилищ для проектов redmine.
  6. Для рассылки автоматических оповещений, устанавливаем на Windows fake sendmail, настраиваем его для работы через специальный аккаунт. Я, например, завел на gmail bugtrack.vgromov@gmail.com.

Далее - начинаем разгребать внутренности стека Bitnami redmine.

  1. Инсталлируем Bitnami Redmine stack  под виртуальной машиной.
  2. Делаем дамп созданной в стековом MySQL базы данных redmine. Дамп впоследствие заливаем на наш основной сервер.
  3. Копируем из стека на наш основной сервер 3 директории: rubyredmineimagemagick
  4. Создаем на основном сервере записи для запуска сервисов кластера 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
  5. Вносим правки в файл конфигурации Apache из пакета Collabnet svn. Нам нужно, чтобы он подгружал модули поддержки proxy и proxy_balancer. Они, слава Труду, входят в поставку Apache от Collabnet.
  6. Добавляем в конец конфигурационного файла Apache инклюд файла конфигурации кластера redmine, лежит в поддиректории redmine/conf.
  7. Ну и наконец, инструктируем кластер 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