![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#1
|
|
![]() Администратор ![]() ![]() ![]() ![]() ![]() Группа: Главные администраторы Сообщений: 14349 Регистрация: 12.10.2007 Из: Twilight Zone Пользователь №: 1 ![]() |
![]() Приветствую тебя, %habrauser%! Предыстория: В данный момент я работаю в небольшой конторе, которая занимается консультированием, аудитом и обслуживание в области IT. Хотя контора и небольшая, количество клиентов у нас росло быстрыми темпами, и без нормального хелпдеска обойтись было уже очень сложно. Рассмотрев приличный перечень продуктов, как платные так и бесплатные, наш выбор пал на продукт фирмы BestPractical, который называется весьма незамысловато Request Tracker. Request Tracker—система учёта и отслеживания заявок уровня предприятия с открытым исходным кодом, позволяющая управлять задачами, проблемами, и внешними запросами от пользователей. Система написана на объектно-ориентированном языке Perl. Система начала разрабатываться с 1996, и используется системными администраторами, сотрудниками служб техподдержки, IT-менеджерами, разработчиками и маркетинговыми отделами. Выбран был по следующим критериям
![]() ![]() ![]() ![]() Текущая версия 3.8.8 от 5 мая 2010 года, вот ее сейчас мы и будем устанавливать. Установка: В качестве операционной системы я использую Freebsd 8 ветки. Как обычно перед установкой чего-либо обновляем порты: # portsnap fetch update В качестве веб-сервера я буду использовать классический вариант: apache 2.2 с mod_perl2 (можете использовать nginx или lighttpd) # cd /usr/ports/www/apache22 && make install clean # cd /usr/ports/www/mod_perl2 && make install clean Теперь устанавливаем сам RT 3.8: # cd /usr/ports/www/rt38 && make install clean В качестве СУБД я буду использовать MySql 5.1 # cd /usr/ports/database/mysql51-server && make install clean После установки прописываем возможность запуска приложений в /etc/rc.conf apache22_enable="YES" mysql_enable="YES" и теперь запускаем только mysql-server # /usr/local/etc/rc.d/mysql-server start Теперь проверяем все ли зависимости RT у нас правильно установились: # /usr/local/sbin/rt-test-dependencies --with-mysql --with-modperl2 Если видим в конце строчку «All dependencies have been found” Значит все хорошо, если нет, то настраиваем CPAN и устанавливаем недостающие зависимости: # /usr/bin/perl -MCPAN -e shell # /usr/local/sbin/rt-test-dependencies --with-mysql --with-modperl2 –install C программным обеспечением разобрались, теперь перейдем к настройке RT. У RT есть два конфигурационных файла RT_Config.pm и RT_SiteConfig.pm. Файл RT_Config.pm содержит значения по умолчанию, которые заменяются значениями из файла RT_SiteConfig.pm. Поэтому открываем файл RT_SiteConfig.pm и указываем свои значения вместо дефолтных: Set( $rtname, 'Firma'); Set($WebBaseURL , "rt.domen.com"); Set( $WebPath , ""); Set($DataBaseType , 'mysql'); Set($DatabaseHost , 'localhost'); Set($DatabaseRTHost , 'localhost'); Set($DatabaseName , 'rt3'); Set($DatabaseUser, 'rt38'); Set($DatabasePassword , password); Set($Timezone, 'Asia/Sakhalin'); Set($CorrespondAddress, '[email protected]); Set($CommentAddress, '[email protected]); Set($RTAddressRegexp, '^support(-comment)?@(domen).(com)$'); Set($OwnerEmail, '[email protected]'); Set($AutoCreate, {Privileged => 1}); Set($NotifyActor, 1); 1; Перед этим мы заводим пользователя в mysql и указываем его логин и пароль в данном файле. Теперь инициализируем базу данных RT (инициализируем от рута, скрипт сам даст необходимые права для пользователя, которого мы указали в RT_Config.pm): # rt-setup-database --action init --dba root --prompt-for-dba-password Назначаем права на конфигурационные файлы: # Chown www /usr/local/etc/rt38/RT_Config.pm # Chmod 600 /usr/local/etc/rt38/RT_Config.pm # Chown www /usr/local/etc/rt38/RT_SiteConfig.pm # Chmod 600 /usr/local/etc/rt38/RT_SiteConfig.pm В принципе для запуска RT все готово, но у нас есть один ньюанс, корпоративная почта работает через Google Apps и аккаунт [email protected] завден там, следовательно нам надо как-то научить RT получать почту с Google Apps. В этом нам поможет fetchmail, устанавливаем: # cd /usr/ports/mail/fetchmail/ && make install clean Так как gmail работает по зашифрованному протоколу, нам нужно подсунуть эти сертификаты fetchmail. Для этого создаем директорию под сертификаты: # mkdir /usr/local/certs/ Создаем внутри этой директории файл: # touch /usr/local/certs/gmail.pem И выполняем скрипт чтобы получить сертификат: # openssl s_client -connect pop.gmail.com:995 -showcerts > /usr/local/certs/gmail.pem Правим получившийся файл, удаляем все до -----BEGIN CERTIFICATE----- и все что после -----END CERTIFICATE----- Потом копируем утилиту для хеширования # cp /usr/src/crypto/openssl/tools/c_rehash /usr/local/bin/c_rehash # chmod +x /usr/local/bin/c_rehash И выполняем хеширование сертификата: # c_rehash /usr/local/certs/ Теперь нам нужно получить отпечаток сертификата и вставить его в конфиг fetchmail # openssl x509 -in /usr/local/certs/gmail.pem -noout -md5 –fingerprint Отпечаток получен, осталось поправить конфиг fetchmail’a примерно до такого вида: defaults protocol pop3, timeout 60, fetchall set logfile=/var/log/fetchmail poll pop.gmail.com port 995 username [email protected] password '****' mda "/usr/local/bin/rt-mailgate --url ip-address --action correspond --queue General" ssl sslcertpath /usr/local/certs/ sslfingerprint "6B:**:**:**:**:**:**:**:**:**:**:**:**:**:B6" (тут небольшое отступление, fetchmail запускается от своего пользователя fetchmail, но почему-то у меня он так не захотел работать, а в логах писал «fetchmail: Cannot switch effective user id to 0: Operation not permitted” поэтому как временное решение данной проблемы, я запустил fetchmail под рутом, что не есть хорошо. Если кто-то знает решение проблемы, очень буду рад услышать) Добавляем в /etc/rc.conf fetchmail_enable="YES" fetchmail_user="root" создаем лог файл для fetchmail, вообще-то он и так кладет логи в /var/log/maillog но чтобы они не перемешивались с остальными # touch /var/log/fetchmail и стартуем fetchmail # /usr/local/etc/rc.d/fetchmail start По умолчанию fetchmail проверяет почту раз в 900 секунд, это можно настроить, проправив стартовый скрипт. Осталось поправить конфиг apache виртуальный хост следующего содержания и стартуем его <VirtualHost *:80> ServerName rt.domen.com ServerAdmin [email protected] DocumentRoot /usr/local/share/rt38/html AddDefaultCharset UTF-8 PerlModule Apache::DBI PerlRequire /usr/local/bin/webmux.pl <Directory /usr/local/share/rt38/html> Order allow,deny Allow from all SetHandler perl-script PerlResponseHandler RT::Mason </Directory> <Location /NoAuth> Order allow,deny Allow from IP-ADDRESS Satisfy any </Location> <Location /REST/1.0/NoAuth> Order allow,deny Allow from IP-ADDRESS Satisfy any </Location> </VirtualHost> Отправляем письмо на [email protected] и заходим на rt.domen.com и посмотреть что у нас получилось, стандартные логин/пароль — root/password. Если что-то не так, смотрим логи apache и fetchmail На этом установка Request Tracker 3.8 завершена. Если данная тема интересна, я продолжу писать про эту систему, и в следующей статье мы рассмотрим настройку. P.S. не сильно подробно расписал? Original source: habrahabr.ru (comments). Читать дальше -------------------- |
|
|
![]() ![]() |
Текстовая версия | Сейчас: 13.6.2025, 14:29 | |
|