ヤマムギ

growing hard days.

*

CentOS 6.5にgit連携のTracを構築する

      2015/04/29

Trac_Logo_512x512

秋の夜長に自宅でTracサーバを構築してみる。
ひとまずRedmineはいったん諦めました。筐体が変わればまたトライしてみます。
gitサーバだけあれば良かったのですが、折角なので色々プラグインを試すか作るかして、よさ気なのは仕事でも反映してやる目論見で。

環境

CentOS 6.5 32bit
Trac 1.0
git 1.7.1

パッケージのインストール

最低限という意味ではいらないものもありますが、あると便利なのでとりあえず。
あと、自宅サーバなので面倒くさいのでrootでログインして全部やっちゃってます。

[bash]
yum -y install httpd
yum -y install python
yum -y install mod_wsgi
yum -y install vim
yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum -y install perl-ExtUtils-MakeMaker
yum -y install wget
yum -y install httpd-devel
yum -y install python-devel
yum -y install python-setuptools
[/bash]

ホストの設定

FQDN付きホスト名にする

[bash]
vim /etc/sysconfig/network
[/bash]

127.0.0.1の行にFQDN付きホスト名を追加

[bash]
vim /etc/hosts
[/bash]

httpd.confのServerName設定を追加

[bash]
vim /etc/httpd/conf/httpd.conf
[/bash]
[plain]
ServerName <FQDNホスト名>:80
[/plain]

テストする
[bash]
service httpd configtest
Syntax OK
[/bash]

SELinux無効設定

[bash]

vim /etc/sysconfig/selinux

[/bash]

[plain]
SELINUX=disabled
[/plain]

Trac 1.0のインストール

[bash]
eazy_install Babel
easy_install http://www.i-act.co.jp/project/products/downloads/Trac-1.0.ja1.zip
[/bash]

tracをmod_wsgiで動かす

trac.wsgiを作る。

[bash]
vim /var/trac/trac.wsgi
[/bash]

[plain]
import os
os.environ[‘TRAC_ENV_PARENT_DIR’] = ‘/var/trac’
os.environ[‘PYTHON_EGG_CACHE’] = ‘/var/trac/eggs’
import trac.web.main
application = trac.web.main.dispatch_request
[/plain]

実行権限の追加

[bash]
chmod 755 /var/trac/trac.wsgi
chown -R apache:apache /var/trac/
[/bash]

trac.confの編集

[bash]
vim /etc/httpd/conf.d/trac.conf
[/bash]

[plain]
WSGIScriptAlias /trac /var/trac/trac.wsgi
<Directory /var/trac>
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
<LocationMatch "/trac/.*/login">
AuthType Basic
AuthName "trac"
AuthUserFile "/var/trac/trac.htpasswd"
Require valid-user
</LocationMatch>
[/plain]

gitのインストール

[bash]
wget http://git-core.googlecode.com/files/git-1.7.12.4.tar.gz
tar xvfz git-1.7.12.4.tar.gz
cd git-1.7.12.4
./configure
make
make install
mkdir /var/git/
yum -y install git-daemon git-all
[/bash]

xinet.d/gitの変更

[bash]
vim /etc/xinetd.d/git
[/bash]

[plain]
disable=no
server_args=–base-path=/var/lib/gitを/var/gitへ変更
[/plain]

プロジェクトの作成

例としてプロジェクト名を「pj(基本プロジェクト)」としています。

[bash]
trac-admin /var/trac/pj initenv
新規 Trac Envirionment /var/trac/pj の生成

はじめに、プロジェクトのデータベースの初期化と準備をするために、
環境についていくつか質問をします。

プロジェクトの名前を入力してください。
この名前は、ページのタイトルと説明に使用します。

プロジェクト名 [My Project]> 基本プロジェクト

使用するデータベースへの接続文字列を指定してください。
デフォルトではローカルに SQLite データベースを作成します。
既に存在する PostgreSQL データベースを使うこともできます。
(Trac では、接続文字列は厳密に表記する必要があります。
詳細は Trac のドキュメントを参照してください。)

データベース接続文字列 [sqlite:db/trac.db]>

プロジェクトの生成と初期化

デフォルトの Wiki ページのインストール

Trac Environment ‘基本プロジェクト’ ができました。

今後、この環境の設定をする場合は、次のファイルを利用します。

/var/trac/pj/conf/trac.ini

新しいプロジェクトを試しに実行してみたい場合は、スタンドアロンウェブ
サーバ tracd を試してみてください。

tracd –port 8000 /var/trac/pj

それから、ブラウザで http://localhost:8000/pj
にアクセスします。インストールしたバージョンに合わせた今後のセット
アップ情報などが含まれたドキュメントが閲覧できます。(例えばウェブサー
バで公開する手順など。)

最新のドキュメントは、プロジェクトのウェブサイトから入手できます。

http://trac.edgewall.org/

Congratulations!

[/bash]

プロジェクトで使うgitの作成

[bash]
git init –bare /var/git/pj.git
git –git-dir=/var/git/pj.git update-server-info
chown apache.apache -R /var/git/pj.git
[/bash]

trac.iniにgitの設定

[bash]
vim /var/trac/pj/conf/trac.ini
[/bash]

追加、変更行のみ記載

[plain]
tracopt.versioncontrol.git.* = enabled
[git]
git_bin = /usr/local/bin/git
[repositories]
project.dir = /var/git/pj.git
project.description = 基本プロジェクトのリポジトリ
[trac]
repository_type = git
[/plain]

サービス自動起動

apacheとgit(xinetd)の自動起動化

[bash]
chkconfig httpd on
chkconfig xinetd on
[/bash]

プロジェクトユーザの作成

例では管理者ユーザ「admin」を作成しています。
[bash]
trac-admin /var/trac/pj permission add admin TRAC_ADMIN
htpasswd -c /var/trac/trac.htpasswd admin
[/bash]

おまけ : ActiveDirectory連携

ActiveDirectoryでユーザ認証を行いたい場合は、trac.confのLocationMatchに設定する。
他のLDAPサーバでも応用は効くと思います。

[bash]
vim /etc/httpd/conf.d/trac.conf
[/bash]

[plain]
<LocationMatch "/trac/./login">
AuthType Basic
AuthBasicProvider ldap
AuthName "ActiveDirectory ID"
AuthLDAPBindDN "CN=<管理者アカウント>,CN=<管理者CN>,DC=<該当DC>,DC=<該当DC>"
AuthLDAPUrl "ldap://<ADのIPアドレス>:3268/DC=<該当DC>,DC=<該当DC>?sAMAccountName?sub?(objectClass=
)"
AuthLDAPBindPassword "<管理者パスワード>"
Require ldap-attribute objectClass=person
Order Allow,Deny
Allow from All
</LocationMatch>
[/plain]

確認

OSごと再起動して、http://[IPアドレス]/trac/pj にアクセスして確認
「リポジトリブラウザ」タブもある。
trac-install-login
Trac_Logo_512x512


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - CentOS, git, Linux, ProjectManagement, trac , , ,

ad

ad

  関連記事

ようやく落ち着きつつある我が家の環境

  ほとんど寄せて集めてなんとかしているがそろそろなんとかせねば Li …

Redmine プラグイン開発チュートリアルをやってみる

Redmine 3.0環境でプラグインを作成するチュートリアルをやってみました。 …

Backlogの課題チケット更新内容をMicrosoft Teamsに通知する(AWS Lambda Python)

BacklogにSlack連携が追加されました。 ですが、私の所属している会社で …

GitLabのバックアップをS3に格納する

GitLabのバックアップがS3に対応していて、非常に簡単設定でした。 しかもE …

Backlogの実績工数をAmazon QuickSightでの可視化 – 仕組み編

Backlogの実績工数をAmazon QuickSightで可視化してわかった …

AWSのAmazon LinuxにGitマスターサーバをインストールしてRedmineリポジトリブラウザで見る

Amazon LinuxにGitをインストールする Gitをインストールして自動 …

Linux Mint 17 MATE 64bit にRuby最新安定版をインストールする

外出用Linux MintにRubyを入れてなかった事をハンズオン直前に思い出し …

Redmine 3.0.0に CRMプラグインをインストールする

Redmine CRMプラグインのFreeのLightバージョンを使ってみる事に …

CentOS6.5(32bit)にOracle公式サイトからJDK8をインストール

CentOS6.5(32bit)にOracle公式サイトからJDK8をインストー …

EC2 Ubuntu DesktopにRDP

Ubuntu Desktopが必要になりましたので、こちらのAWS EC2でデス …