Apache Qpidのインストール
AMQP実装の一つであるApache Qpidのインストールについて残しておきます。ドキュメント斜め読みで作業してるので、不足等ありましたらご指摘いただけると嬉しいです。
使用してるもの:
Broker (C++)
メッセージブローカーをインストールします。
依存関係は qpid-0.12/cpp/INSTALL に記載されています。 yum 等でインストールしておきましょう。EC2 Micro Instanceでビルドする場合はスワップを作成しておくことをお勧めします。
cd qpid-0.12/cpp ./bootstrap ./configure --prefix=/usr/local/qpid make sudo make install
デーモンの実行ユーザを作成します。
sudo groupadd -g 56 qpidd sudo useradd -u 56 -g 56 -d /usr/local/qpid -s /sbin/nologin qpidd sudo chown qpidd:qpidd /usr/local/qpid sudo chown qpidd:qpidd -R /usr/local/qpid/var sudo cp qpid-0.12/cpp/etc/qpidd /etc/init.d/qpidd
起動スクリプトは配布パッケージの qpid-0.12/cpp/etc/qpidd にあります。 /usr/local/qpid にインストールした場合は下記のように改変します。
--- tmp/qpid-0.12/cpp/etc/qpidd 2010-06-11 21:49:52.000000000 +0900 +++ /etc/init.d/qpidd 2011-10-29 17:48:13.485728409 +0900 @@ -35,6 +35,8 @@ # description: Qpidd is an AMQP broker. It receives, stores, routes and forwards messages using the AMQP protcol. # processname: qpidd +basedir=/usr/local/qpid + prog=qpidd lockfile=/var/lock/subsys/$prog pidfile=/var/run/qpidd.pid @@ -49,8 +51,8 @@ RETVAL=0 #ensure binary is present and executable -if [[ !(-x /usr/sbin/$prog) ]] ; then - echo "/usr/sbin/$prog not found or not executable" +if [[ !(-x $basedir/sbin/$prog) ]] ; then + echo "$basedir/sbin/$prog not found or not executable" exit 5 fi @@ -62,9 +64,9 @@ fi start() { - [[ $QPID_DATA_DIR ]] || QPID_DATA_DIR=/var/lib/qpidd + [[ $QPID_DATA_DIR ]] || QPID_DATA_DIR=$basedir/var/lib/qpidd echo -n $"Starting Qpid AMQP daemon: " - daemon --pidfile $pidfile --check $prog --user qpidd /usr/sbin/$prog --data-dir $QPID_DATA_DIR --daemon $QPIDD_OPTIONS + daemon --pidfile $pidfile --check $prog --user qpidd $basedir/sbin/$prog --data-dir $QPID_DATA_DIR --daemon $QPIDD_OPTIONS RETVAL=$? echo [ $RETVAL = 0 ] && touch $lockfile @@ -72,7 +74,7 @@ touch $pidfile chown qpidd.qpidd $pidfile [ -x /sbin/restorecon ] && /sbin/restorecon $pidfile - runuser - -s /bin/sh qpidd -c "/usr/sbin/$prog --check > $pidfile" + runuser - -s /bin/sh qpidd -c "$basedir/sbin/$prog --check > $pidfile" fi return $RETVAL }
sudo /etc/init.d/qpidd start
Management tools
管理ツールをインストールします。
cd qpid-0.12/python sudo ./setup.py install --prefix /usr/local/qpid
cd qpid-0.12/tools sudo ./setup.py install --prefix /usr/local/qpid
cd qpid-0.12/extra/qmf sudo ./setup.py install --prefix /usr/local/qpid
site-packagesが別の場所に入るため、 PYTHONPATH で指定しておきます。ディストリビューションに合わせて設定してください。ここでは /etc/profile.d/qpid-tools.sh で指定しました。
# Set up path for Apache Qpid tools export PATH="$PATH:/usr/local/qpid/bin" export PYTHONPATH="${PYTHONPATH}${PYTHONPATH:+:}/usr/local/qpid/lib/python2.6/site-packages"
ブローカー一覧が表示されれば成功です。
qpid-stat -b
サンプルは qpid-0.12/python/examples 等に入っています。