SDN開発エンジニアを目指した活動ブログ

〜SDNなオープンソース製品を実際に使って試してみる〜

OpenStackメッセージング機構を探ってみる(1) 〜環境構築編〜

今回から、OpenStackで活用されているメッセージング機構を調べてみる。
以前のOpenStackユーザ会での講演資料「OpenStack を支える メッセージングの基礎」あたりの理解から始めてみる。
http://openstack.jp/assets/files/20121216/osc2012cloudjosugamqpv2-121216085708-phpapp02.pdf

◆構築手順メモ

動作原理を理解するには、実際に試してみるのがいちばんの近道なので、まずは環境構築から ...

(1)サーバ側:
 ・OS: Ubuntu 14.04 Server版
 ・AMQP:Apache Qpid
 ・oslo-incubator環境

(2)クライアント側:
 ・OS: Ubuntu 14.04 Server版
 ・oslo-incubator環境

(1) オペレーティングシステム環境

Qpidを動作される場合には、RHEL系のCentOSが望ましいところ。
しかしながら、Python2.7を使いたいので、あえて、Ubuntuを選択した。

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 14.04 LTS
Release:	14.04
Codename:	trusty

$ uname -a
Linux Client 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

(2) Apache Qpid環境

Apache Qpidには管理ツールとして、qpid-toolsもインストールしておきたいところ。
qpid-toolsのインストールには、パッケージの依存関係を考慮して手作業で実施した。なお、ツール使用方法は、こちらがブログ記事を参考にさせて頂いた。
OSSはアルミニウムの翼で飛ぶ: apache qpid - exchange/queue/bindの監視

$ sudo apt-get install qpidd

$ sudo -i
# dpkg -i libboost-program-options1.46.1_1.46.1-7ubuntu3_amd64.deb
# dpkg -i libqmf2-1_0.16-7ubuntu1_amd64.deb
# dpkg -i libqmfconsole2_0.14-2_amd64.deb
# dpkg -i libqpidmessaging2_0.16-7ubuntu1_amd64.deb
# dpkg -i libqpidclient2_0.14-2_amd64.deb
# dpkg -i libqmf2-1_0.16-7ubuntu1_amd64.deb
# dpkg -i python-cqmf2_0.14-2_amd64.deb
# dpkg -i python-qmf2_0.14-2_amd64.deb
# dpkg -i python-setuptools_3.3-1ubuntu1_all.deb     
# dpkg -i python-qpid_0.12-2_all.deb     
# dpkg -i python-qpid-extras-qmf_0.12-1_all.deb     
# dpkg -i qpid-tools_0.12-1_all.deb

(3) Qpid設定見直し

今回はあくまでも、動作原理のお勉強を目的とするので、Qpid認証は無効にしておいた。

$ sudo cat /etc/qpid/qpidd.conf |grep auth=
auth=no

$ sudo service qpidd stop
 * Stopping AMQP broker qpidd                                                                       [ OK ] 
$ sudo service qpidd start
 * Starting AMQP broker qpidd                                                                       [ OK ] 

(4) Qpid用サンプルプログラムの置き場所

qpid-toolsをインストールすると、サンプルプログラムも利用できるようになる。

# cd /usr/share/doc/python-qpid/examples/api
# ls -l
total 20
-rwxr-xr-x 1 root root 3285 Jun 10  2010 drain
-rwxr-xr-x 1 root root 1353 Aug 10  2010 hello
-rwxr-xr-x 1 root root 2121 Aug 10  2010 hello_xml
-rwxr-xr-x 1 root root 3044 Jun 10  2010 server
-rwxr-xr-x 1 root root 4004 Jul 14  2011 spout

(5) OpenStackメッセージング環境の構築

本来ならば、OpenStackのインストールから取りかかるべきところだが、手間と労力削減のため、今回は、oslo-incubator環境で構築してみた。
oslo-incubator自体は、Githubで公開されているので、インストールを手軽に試せる点が Good !!
openstack/oslo-incubator · GitHub

$ sudo apt-get install git
$ sudo apt-get install python-pip

$ git clone https://github.com/openstack/oslo-incubator.git
Cloning into 'oslo-incubator'...
remote: Reusing existing pack: 16413, done.
remote: Counting objects: 78, done.
remote: Compressing objects: 100% (72/72), done.
remote: Total 16491 (delta 25), reused 18 (delta 5)
Receiving objects: 100% (16491/16491), 4.58 MiB | 548.00 KiB/s, done.
Resolving deltas: 100% (10067/10067), done.
Checking connectivity... done.

$ cd oslo-incubator

$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/stable/havana
  remotes/origin/stable/icehouse

$ git checkout -b stable/icehouse remotes/origin/stable/icehouse
$ git branch
  master
* stable/icehouse

$ sudo apt-get install python-dev
$ sudo pip install -r requirements.txt
$ sudo python ./setup.py install

◆おわりに

検証環境自体は、結構手軽に構築できた。
次回からは、本格的にメッセージング機構の理解を着手したい。