Tracのバックアップ
RubyともRailとも関係ないことばかりですが、いままで稼動していたTracのバックアップを考えておかないとね
で
バックアップをする
Subversionのリポジトリをバックアップ
svnadmin dump /var/svn/project > project.dmp
Tracのバックアップ
# trac-admin /var/www/trac/project hotcopy <バックアップ先>
簡単なシェルを作って定期的にバックアップ
# mkdir /backup # vi /backup/backup.sh #<= backup.sh 作成 #!/usr/bin backuppath=/backup/`date +%Y%m%d` mkdir backuppath svnadmin dump /var/svn/project > ${backuppath}/project.dmp trac-admin /var/www/trac/project hotcopy ${backuppath} tar zcf backuppath exit 0
こんな感じのを作っておいて、cronで定期実行させる
(本当は、ハードが壊れたら元も子もないので、別のパソコンへデータを移動させるほうが良いでしょう)
# crontab-e 00 13 * * * /backup/backup.sh :wq
で、毎日13:00に定期的にbackup.shが実行されることになる
Tracのリストア
サーバーが逝った時のことを想定して、TRACのリストアをテスト
VMのイメージは、この前作ったCentOS 4.5を使用、カーネルインストールまで終わっている環境のバックアップを取ってます。これを使います。(Rubyのテスト用に作ったんだけどね・・・)
VM等でテストすると、ここら辺がお手軽でよいです(^o^)/
DAG(rpmforge)をインストール
追加のパッケージをyumでインストールできるので便利、特に後でインストールする「ClearSilver」がインストールできるようになるので、ここでインストールする。
最新パッケージは、ここで確認
# wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.4-1.el4.rf.i386.rpm # rpm -ivh rpmforge-release-0.3.4-1.el4.rf.i386.rpm
終わったら、アップデートしておく
# yum update
apacheとsubversionをインストール
# yum install httpd subversion mod_dav_svn mod_ssl
起動と起動設定
# service httpd start httpd を起動中: [ OK ] # chkconfig httpd on # chkconfig --list httpd httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
subversionのリストア
リポジトリの作成
/var/svnの下にプロジェクト名毎にリポジトリを作るとする。
(リポジトリの中でプロジェクト分けたほうがよいのかな?)
# mkdir /var/svn # cd /var/svn # svnadmin create /var/svn/<プロジェクト名> # svnadmin load /var/svn/<プロジェクト名> < dumpfile <<< オリジナルのリビジョン *** に基づき、新しいトランザクションを開始しました ------- リビジョン *** をコミットしました >>>
Apacheから操作できるようにオーナーを変更しておく
# chown -R apache.apache /var/svn/<プロジェクト名>
Subversionの再設定
リポジトリへデータの取り込みはできたものの、これでは外のパソコンから参照できない。
で、設定をしてやる
/etc/httpd/conf.d/subversion.confを編集
#vi /etc/httpd/conf.d/subversion.conf <Location /repos/<プロジェクト名>> DAV svn SVNPath /var/svn/<プロジェクト名> <LimitExcept GET PROPFIND OPTIONS REPORT> AuthType Basic AuthName "Authorization Realm" AuthUserFile /var/svn/.passwd Require valid-user </LimitExcept> </Location>
Basic認証用のパスワードファイルを作成する。
# htpasswd -c /var/svn/.passwd <登録するユーザー名> New passwd: <パスワードを入力> Re-Type new password: <パスワードを入力> Adding password for user <登録するユーザー名>
htpasswdの-cはクリエートのオプションなので、次からは.passwdファイルが既にあるならいらない
Apacheを再起動させる
# service httpd restart httpd を停止中: [ OK ] httpd を起動中: [ OK ]
ためしにアクセスしてみる
http://<サーバーのIP>/repos/<プロジェクト名>
Revision ***: /
* branches/
* tags/
* trunk/
こんなのが表示されるはず。
これでバージョン管理システムはOK,次はTrac
pythonをインストール
pythonと日本語コーデック、Python/XMLをインストール
最新版の確認は、以下を確認
JapaneseCodecs : http://www.python.jp/pub/JapaneseCodecs/
# cd # yum install mod_python python-devel clearsilver python-clearsilver ........ # wget http://ftp.python.jp/pub/JapaneseCodecs/JapaneseCodecs-1.4.11.tar.gz # tar xvfz JapaneseCodecs-1.4.11.tar.gz # cd JapaneseCodecs-1.4.11 # python setup.py install # wget http://jaist.dl.sourceforge.net/sourceforge/pyxml/PyXML-0.8.4.tar.gz # tar xvfz PyXML-0.8.4.tar.gz # cd PyXML-0.8.4 # python setup.py install
trac日本語版のインストール
日本語版を用意してくださっているインアタクトさんに感謝しつつインストール
# wget http://www.i-act.co.jp/project/products/downloads/trac-0.10.4-ja-1.zip # unzip trac-0.10.4-ja-1.zip # cd trac-0.10.4-ja-1.zip # python setup.py install
Tracのリストア
バックアップしていたデータをリストア
# service httpd stop # cp -Rf <バックアップデータ>/* /var/www/trac/project # vi /var/www/trac/hoge/conf/trac.ini repository_dir=<この値を新しいSubversionのリポジトリに変更> # trac-admin /var/www/trac/project resync Resyncing repository history... ** revisions cached. Done. # service httpd start
Apacheの設定
Tracのmod_python用の設定は、/etc/httpd/conf.d/python.confに追加
<Location /projects> SetHandler mod_python PythonHandler trac.web.modpython_frontend PythonOption TracEnvParentDir /var/www/trac PythonOption TracUriRoot /projects </Location> <LocationMatch "/[^/]+/login"> AuthType Basic AuthName "Trac" AuthUserFile /var/svn/.passwd Require valid-user # SSLRequireSSL </LocationMatch>
SSLは使ってないのでコメントしてますorz
って感じ。