友人がこのブログを見てくれているようだったのだが、今日の昼「大掃除とかwww」と突っ込まれ技術系の記事を書くことを強いられた。
はい。書きます。
今、業務でRabbitMQを導入しようかどうしようかという話が出ているのだけども、使ったことがないので自分ちのVMに入れてみようかなと思って調べていた。
すると公式サイトでrpmパッケージを配布していたので、これを使って入れると簡単かなーと思った。
具体的なRabbitMQの使い方については明日書けたらいいなー。
とりあえずRabbitMQをインストールする。
ちなみに私の環境は
$ cat /etc/redhat-release CentOS release 6.5 (Final) $ uname -a Linux localhost.localdomain 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
というわけでCentOS 6.5 64bitのvagrantに入れる準備をする。
rpmパッケージと署名だけ先にダウンロード
$ wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.2.1/rabbitmq-server-3.2.1-1.noarch.rpm $ wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.2.1/rabbitmq-server-3.2.1-1.noarch.rpm.asc
あとで気づいたけど、ascファイルに関しては別にダウンロードする必要なかった。
まぁいいや。
Erlangの準備
RabbitMQはErlangがインストールされた環境で動く。なのでErlangのインストールから行う。
まずEPELパッケージの最新版を入れておく。EPELいつ入れたか忘れたけど、アップデート。
$ sudo yum -y --enablerepo=epel update epel-release
次にRabbitMQ - Installing on RPM-based Linux (CentOS, Fedora, OpenSuse, RedHat)によると
EPELパッケージ・ポリシーのため、EPEL 5にはとても古いErlang(R12B-5)が入っているが、これはRabbitMQと互換性がない。*1
と載っているので、Erlangの最新版を入れることにする*2。
で、RabbitMQ - Installing on RPM-based Linux (CentOS, Fedora, OpenSuse, RedHat)にwgetの親切なコマンドがあるのだけども、おもむろに無視してErlangの公式ページにあるインストール方法
wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm sudo rpm -Uvh erlang-solutions-1.0-1.noarch.rpm sudo yum install erlang
を実行。いろいろ入る。
GnuPG 鍵の登録
RabbitMQのrpmパッケージには署名がついているので、認証する必要がある。なのでRabbitMQ - Signaturesにある方法で鍵を登録する。
$ gpg --keyserver pgp.mit.edu --recv-keys 0x056E8E56 gpg: requesting key 056E8E56 from hkp server pgp.mit.edu gpg: /home/vagrant/.gnupg/trustdb.gpg: trustdb created gpg: key 056E8E56: public key "RabbitMQ Release Signing Key <info@rabbitmq.com>" imported gpg: Total number processed: 1 gpg: imported: 1 $ gpg --verify rabbitmq-server-3.2.1-1.noarch.rpm.asc rabbitmq-server-3.2.1-1.noarch.rpm gpg: Signature made Thu 07 Nov 2013 08:05:33 PM JST using DSA key ID 056E8E56 gpg: Good signature from "RabbitMQ Release Signing Key <info@rabbitmq.com>" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: ****
警告が気になるならここの最後に書いてあるコマンドを使えばいい。
RabbitMQをインストール
ここまでできてたらあとは簡単。
$ sudo yum install rabbitmq-server-3.2.1-1.noarch.rpm
RabbitMQサーバ立ち上げ
$ sudo service rabbitmq-server start
Starting rabbitmq-server: SUCCESS
rabbitmq-server.
$ sudo rabbitmqctl status
Status of node rabbit@localhost ...
[{pid,3375},
{running_applications,[{rabbit,"RabbitMQ","3.2.1"},
{mnesia,"MNESIA CXC 138 12","4.9"},
{os_mon,"CPO CXC 138 46","2.2.12"},
{xmerl,"XML parser","1.3.3"},
{sasl,"SASL CXC 138 11","2.3.2"},
{stdlib,"ERTS CXC 138 10","1.19.3"},
{kernel,"ERTS CXC 138 10","2.16.3"}]},
{os,{unix,linux}},
{erlang_version,"Erlang R16B02 (erts-5.10.3) [source-b44b726] [64-bit] [async-threads:30] [kernel-poll:true]\n"},
{memory,[{total,34432880},
{connection_procs,2632},
{queue_procs,5264},
{plugins,0},
{other_proc,13314400},
{mnesia,57808},
{mgmt_db,0},
{msg_index,33584},
{other_ets,768432},
{binary,7448},
{code,16261903},
{atom,561761},
{other_system,3419648}]},
{vm_memory_high_watermark,0.4},
{vm_memory_limit,192287539},
{disk_free_limit,50000000},
{disk_free,496668463104},
{file_descriptors,[{total_limit,924},
{total_used,3},
{sockets_limit,829},
{sockets_used,1}]},
{processes,[{limit,1048576},{used,122}]},
{run_queue,0},
{uptime,2089}]
...done.
さて立ち上げまではそんなに困らなかったが、これを使うとなるとどうなるんだろう。
また明日!
*1:"Due to the EPEL package update policy, EPEL 5 contains a very old version of Erlang, R12B-5; with which RabbitMQ is not compatible."の訳
*2:ちなみにErlangインストール前にEPELパッケージをアップデートしているのでEPELパッケージは実は6なのだけど、それで入るErlangのバージョンがいくつなのか調べるの面倒だったのでやってない。だってそれのバージョンがやっぱり古くて使えません、となると結局Erlang Solutionsを見ないといけなくなる。