サーバ環境

現在の開発からリリースするまでの環境は下記のような感じ。
・開発機(Vine4.1 on NotePC)
・テスト機(CentOS 4 on Vmware)
・本番機(CentOS 4)

どこでも開発できるため、開発機はThinkPad X30にLinuxを専用に入れてます。メモリも750Mあるので、キツクない。
テスト機と本番機は、基本的には同じ内容。本番機をセットアップ後、rsyncで必要なファイル一式をテスト機に同期させてセットアップしました。

開発機で開発が終わると、テスト機にrsyncでプログラムをコピーし、テスト機で全てテスト。テスト完了後、本番機にプログラムをrsyncしてます。

プログラムの同期は全てそれで行い、createdbやテーブル作成は、sqlファイルを作成し、sqlファイルをrsyncで同期後、

psql 
\i hoge.sql

で作成してます。データベースのdataディレクトリごとrsyncしてもいいんだけど、開発機はごみデータとか、色々無駄なデータがはいっているので、こうすることにした。

rsyncは、必要なディレクトリごと同期させるシェル(下記)を作って実行するだけ。引数に同期させたいサーバのIPアドレスとかホスト名を入れるだけ。下記のシェルでは、excludeで同期させたくないデータを除いている。

#!/bin/sh

rsync -avr -e ssh --exclude=hoge-data.txt /usr/local/apache/htdocs/cgi-bin/hoge/ $1:/usr/local/apache/htdocs/cgi-bin/hoge