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
◆おわりに
検証環境自体は、結構手軽に構築できた。
次回からは、本格的にメッセージング機構の理解を着手したい。