Рано или поздно многие сталкиваются с выбором багтрекера. При этом не зависимо от того с какой целью планируется его применения (промышленное или личное), перед использованием хотелось бы с ним ознакомиться. После беглого анализа результатов запросов поисковых систем по интересующему вопросу становиться ясно, что одной из систем, которую нельзя обойти стороной является Trac. Но, к сожалению, при изучении инструкции по установке этого замечательного инструмента у многих желания знакомиться с Trac пропадает. Я расскажу, как этого можно избежать и познакомиться (а может быть и подружиться) с Trac максимально быстро, а главное просто.
В статье будет рассмотрен пример установки Trac с интеграцией системы управления версиями Subversion и сервера управления базами данных PostgreSQL c web-интерфейсом, который обеспечит Apache и всё это будет установлено на свободную операционную систему openSUSE.Предполагается, что читатель в общих чертах знаком с тем, зачем вообще нужен багтрекер поэтому ни обзора ни сравнений Trac и сопутствующих инструментов представлено не будет.
Статья может быть интересна всем, тем, кто «находится в поиске» и желает попробовать Trac, а так же пользователям openSUSE, которые уже определились с выбором и желают его установить.
Для работы потребуется:
Создадим новую виртуальную машину и установим openSUSE с любимым DE (особо суровые или не определившиеся в выборе окружения могут выбрать Text Mode). При установке ОС никаких особых настроек выполнять не нужно и достаточно принять те, что предусмотрены по умолчанию. Единственное требование – это при выборе языка оставить без изменений английский.
Добавим необходимые репозитории:
Они необходимы для того, что бы установить: python-genshi, apache2-mod_wsgi, python-babel, python-pygments, trac соответственно, а так же другие необходимые пакеты.
Выполним установку:
На этом этапе крайне желательно убедиться, что все запроженные пакеты будут установленны и следовательно все репозитории были правильно проинициализированы. При успешном ходе установки это может выглядеть так:
Создадим svn-репозиторий:
Создадим файл для хранения паролей:
И добавим двух пользователей: admin и user:
Установим корректные права на файлы и каталоги:
Настроим СУБД для работы с Trac.
Запустим сервер:
Определим параметры доступа к БД, для чего откроем для редактирования файл конфигурации:
и заменим строку:
на слудующую:
В результате должно получиться примерно такое:
Затем войдем в систему с правами пользователя postgres:
создадим нового пользователя trac:
и одноименную базу данных:
Не забудем перезагрузить сервер, что бы параметры безопасности вступили в силу:
Создадим окружение Trac:
Если создание проекта прошло успешно Вы об этом будете проинформированы:
Установим корректные права на файлы и каталоги:
Что бы знакомство с Trac было познавательней предоставим одному из пользователей (речь идет о тех пользователях, которые были созданы на этапе конфигурации Subversion) права администратора:
Изменим cgi-файл:
Добавим между строками try и from две строки, приведя к следующему виду:
Настроим Apache.
Откроем для редактирования файл конфигурации Apache:
И установим следующее значение для параметра APACHE_SERVER_FLAGS:
Откроем для редактирования файл конфигурации модуля trac:
И изменим настройки в секции <Location "/trac"> приведем его к следующему виду:
Остальные параметры необходимо оставить без изменений.В результате должно получиться примерно следующее:
Запустим web-сервер:
Теперь мы можем, воспользовавшись любимым web-браузером, приступить к знакомству с Trac локально:
Подобное диалоговое окно свидетельствует о настроенной аутентификации. А если после ввода имени и пароля Вам удасться увидеть примерно следующее:
то аутентификация настроена правильно.Кроме того можно обратиться к Tracнормально удаленно, не забыв при этом открыть соответствующий порт в Firewall:
В заключении стоит отметить, что на самом деле, существует более короткий способ установки Trac. Можно опустить установку и настройку Subversion и Apache при этом воспользоваться для запуска standalone сервером:
Для доступа нужно будет перейти по адресу: http://localhost:8000.
Вступление
Кому это нужно?
В статье будет рассмотрен пример установки Trac с интеграцией системы управления версиями Subversion и сервера управления базами данных PostgreSQL c web-интерфейсом, который обеспечит Apache и всё это будет установлено на свободную операционную систему openSUSE.Предполагается, что читатель в общих чертах знаком с тем, зачем вообще нужен багтрекер поэтому ни обзора ни сравнений Trac и сопутствующих инструментов представлено не будет.
Статья может быть интересна всем, тем, кто «находится в поиске» и желает попробовать Trac, а так же пользователям openSUSE, которые уже определились с выбором и желают его установить.
Что будет необходимо для работы
Для работы потребуется:
- доступ в Internet;
- VirtualBox (автор настоятельно рекомендует не проводить опыты на рабочих машинах и серверах);
- установочный DVD-диск openSUSE 11.2;
- несколько часов свободного времени и желание прикоснуться к прекрасному.
Установка и настройка
Установка ОС
Создадим новую виртуальную машину и установим openSUSE с любимым DE (особо суровые или не определившиеся в выборе окружения могут выбрать Text Mode). При установке ОС никаких особых настроек выполнять не нужно и достаточно принять те, что предусмотрены по умолчанию. Единственное требование – это при выборе языка оставить без изменений английский.
Добавление репозиториев
Добавим необходимые репозитории:
sudo zypper ar http://download.opensuse.org/repositories/home:/FunkyM:/scm/openSUSE_11.2 FunkyM
sudo zypper ar http://download.opensuse.org/repositories/Apache:/Modules/Apache_openSUSE_11.2 Apache
sudo zypper ar http://download.opensuse.org/repositories/home:/babelworx:/python/openSUSE_11.2 babelworx
sudo zypper ar http://download.opensuse.org/repositories/devel:/languages:/python/openSUSE_11.2 devel
sudo zypper ar http://download.opensuse.org/repositories/devel:/tools:/scm/openSUSE_11.2/ csm
Они необходимы для того, что бы установить: python-genshi, apache2-mod_wsgi, python-babel, python-pygments, trac соответственно, а так же другие необходимые пакеты.
Непосредственно установка
Выполним установку:
sudo zypper in python python-devel python-xml python-setuptools postgresql-server python-psycopg2 subversion swig apache2 apache2-mod_wsgi apache2-mod_python docutils python-pygments python-pytz sqlite3 subversion-python trac-multirepo trac-server trac
На этом этапе крайне желательно убедиться, что все запроженные пакеты будут установленны и следовательно все репозитории были правильно проинициализированы. При успешном ходе установки это может выглядеть так:
Создание репозитория исходного кода
Создадим svn-репозиторий:
sudo mkdir -p /srv/svn/repos
cd /srv/svn/repos
sudo svnadmin create --fs-type fsfs habrahabr
Создадим файл для хранения паролей:
sudo mkdir /srv/svn/user_access
sudo touch /srv/svn/user_access/habrahabr_passwdfile
И добавим двух пользователей: admin и user:
sudo htpasswd2 /srv/svn/user_access/habrahabr_passwdfile admin
sudo htpasswd2 /srv/svn/user_access/ habrahabr_passwdfile user
Установим корректные права на файлы и каталоги:
sudo mkdir -p /srv/svn/repos/abacus/dav
sudo chown -R wwwrun:www habrahabr/{dav,db,locks}
sudo chown root:www /srv/svn/user_access/habrahabr_passwdfile
sudo chmod 640 /srv/svn/user_access/habrahabr_passwdfile
Настройка PostgreSQL
Настроим СУБД для работы с Trac.
Запустим сервер:
sudo /sbin/service postgresql start
Определим параметры доступа к БД, для чего откроем для редактирования файл конфигурации:
sudo vim /var/lib/pgsql/data/pg_hba.conf
и заменим строку:
host all all 127.0.0.1/32 ident
на слудующую:
host trac trac 127.0.0.1/32 password
В результате должно получиться примерно такое:
Затем войдем в систему с правами пользователя postgres:
su<br>su postgres
создадим нового пользователя trac:
createuser --pwprompt --encrypted --no-adduser --no-createdb trac
и одноименную базу данных:
createdb --encoding=UNICODE --owner=trac trac
Не забудем перезагрузить сервер, что бы параметры безопасности вступили в силу:
sudo /sbin/service postgresql restart
Создание проекта Trac
Создадим окружение Trac:
sudo trac-admin /srv/trac/habrahabr initenv
При этом ответим следующим образом на каверзные вопросы:habrahabr
postgres://trac:secret@127.0.0.1:5432/trac
svn
/srv/svn/repos/habrahabr
Если создание проекта прошло успешно Вы об этом будете проинформированы:
Установим корректные права на файлы и каталоги:
sudo chown -R wwwrun /srv/trac/habrahabr
Что бы знакомство с Trac было познавательней предоставим одному из пользователей (речь идет о тех пользователях, которые были созданы на этапе конфигурации Subversion) права администратора:
trac-admin /srv/trac/habrahabr permission add admin TRAC_ADMIN
Изменим cgi-файл:
sudo vim /usr/share/trac/cgi-bin/trac.cgi
Добавим между строками try и from две строки, приведя к следующему виду:
try:
import os
os.environ['TRAC_ENV'] = "/srv/trac/habrahabr"
from trac.web import cgi_frontend
Настройка web-сервера
Настроим Apache.
Откроем для редактирования файл конфигурации Apache:
sudo vim /etc/sysconfig/apache2
И установим следующее значение для параметра APACHE_SERVER_FLAGS:
APACHE_SERVER_FLAGS="TRAC_CGI"
Откроем для редактирования файл конфигурации модуля trac:
sudo vim /etc/apche2/conf.d/trac.conf
И изменим настройки в секции <Location "/trac"> приведем его к следующему виду:
SetEnv TRAC_ENV "/srv/trac/habrahabr"
Order allow,deny
Allow from all
AuthType Basic
AuthName "Trac"
AuthUserFile /srv/svn/user_access/habrahabr_passwdfile<br> Require valid-user
Остальные параметры необходимо оставить без изменений.В результате должно получиться примерно следующее:
Запустим web-сервер:
sudo /sbin/service apache2 start
Использование Trac
Теперь мы можем, воспользовавшись любимым web-браузером, приступить к знакомству с Trac локально:
Подобное диалоговое окно свидетельствует о настроенной аутентификации. А если после ввода имени и пароля Вам удасться увидеть примерно следующее:
то аутентификация настроена правильно.Кроме того можно обратиться к Trac
Заключение
В заключении стоит отметить, что на самом деле, существует более короткий способ установки Trac. Можно опустить установку и настройку Subversion и Apache при этом воспользоваться для запуска standalone сервером:
tracd --port 8000 /srv/trac/habrahabr
Для доступа нужно будет перейти по адресу: http://localhost:8000.