あいさつ、%habrauser%!
背景:
現時点では、コンサルティング、監査、ITサービスに従事している小さなオフィスで働いています。 オフィスは小さいですが、クライアントの数は急速に増加しており、通常のヘルプデスクなしでは管理が非常に困難でした。 有料と無料の両方の製品の適切なリストを検討した結果 、非常にシンプルなリクエストトラッカーと呼ばれるBestPractical製品が選ばれました。
Request Trackerは、タスク、問題、およびユーザーからの外部リクエストを管理するためのオープンソースのエンタープライズレベルの会計および追跡システムです。 システムは、オブジェクト指向言語Perlで書かれています。 このシステムは1996年から開発が開始され、システム管理者、テクニカルサポートの従業員、ITマネージャー、開発者、マーケティング部門によって使用されています。
en.wikipedia.org/wiki/Request_Tracker
次の基準で選択された
- 無料(月額料金でSaaSモデルを使用できます)
- クロスプラットフォーム(PERLで記述)
- GPLv2無料ライセンス
- 非常によく文書化されている
- さまざまなDBMS(MySQL、PostgreSQL、SQlite、Oracle DB)をサポート
- RTFMエンジン統合(Wiki同等)
現在のバージョンは2010年5月5日から3.8.8であり、今すぐインストールします。
インストール:
オペレーティングシステムとして、Freebsd 8ブランチを使用します。 いつものように、何かをインストールする前にポートを更新します。
# portsnap fetch update
Webサーバーとしてクラシックバージョンを使用します:mod_perl2を使用したapache 2.2(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
DBMSとして、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
最後に「すべての依存関係が見つかりました」という行が表示された場合、すべてが正常であり、そうでない場合は、CPANを構成し、欠落している依存関係をインストールします。
# /usr/bin/perl -MCPAN -e shell
# /usr/local/sbin/rt-test-dependencies --with-mysql --with-modperl2 –install
ソフトウェアを見つけたので、RTのセットアップに移りましょう。 RTには、RT_Config.pmとRT_SiteConfig.pmの2つの構成ファイルがあります。 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, 'support@domen.com);
Set($CommentAddress, 'suppport-comment@domen.com);
Set($RTAddressRegexp, '^support(-comment)?\@(domen)\.(com)$');
Set($OwnerEmail, 'sergey@domen.com');
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を介して企業メールが機能し、そこでsupport@domen.comアカウントが開始されるという警告があります。したがって、Google Appsからメールを受信する方法をRTに何らかの方法で教える必要があります。 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 configに貼り付ける必要があります
# openssl x509 -in /usr/local/certs/gmail.pem -noout -md5 –fingerprint
フィンガープリントは受信されますが、fetchmailの設定をおよそこのタイプに修正するために残ります:
defaults protocol pop3,
timeout 60,
fetchall
set logfile=/var/log/fetchmail
poll pop.gmail.com
port 995
username support@domen.com
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:有効なユーザーIDを0に切り替えられません:操作は許可されていません」と言われたため、この問題の一時的な解決策として、ルートの下で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 sergey@domen.com
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>
support@domain.comにメールを送信し、rt.domain.comにアクセスして、取得したものを確認します。標準のユーザー名/パスワードはroot / passwordです。 何か問題がある場合は、Apacheとfetchmailのログを見てください
これで、Request Tracker 3.8のインストールが完了しました。 このトピックが興味深い場合は、このシステムについて引き続き説明します。次の記事では、構成について検討します。
PSはあまり詳しく描かれていませんか?