CentOS 7
 

RabbitMQ : インストール
2016/09/03
 
AMQP (Advanced Message Queuing Protocol) を使用して、アプリケーション間で非同期にメッセージのやり取りが可能な RabbitMQ のインストールと利用方法です。
[1] RabbitMQ をインストールします。
# EPELからインストール

[root@dlp ~]#
yum --enablerepo=epel -y install rabbitmq-server
[root@dlp ~]#
systemctl start rabbitmq-server

[root@dlp ~]#
systemctl enable rabbitmq-server
[2] Firewalld を有効にしている場合は、RabbitMQ ポートの許可が必要です。
[root@dlp ~]#
firewall-cmd --add-port=5672/tcp --permanent

success
[root@dlp ~]#
firewall-cmd --reload

success
[3] RabbitMQ を利用するためには、まず、ユーザーを追加します。
デフォルトではローカルのみ利用可能な guest ユーザーが登録されています。
# rabbitmqctl add_user [ユーザー] [パスワード]

[root@dlp ~]#
rabbitmqctl add_user serverworld password

Creating user "serverworld" ...
...done.
# ユーザーリスト表示

[root@dlp ~]#
rabbitmqctl list_users

Listing users ...
guest [administrator]
serverworld []
...done.
# ユーザーのパスワードを変更する場合は以下

[root@dlp ~]#
rabbitmqctl change_password serverworld strongpassword

Changing password for user "serverworld" ...
...done.
# ユーザーに管理者ロールを付与する場合は以下

[root@dlp ~]#
rabbitmqctl set_user_tags serverworld administrator

Setting tags for user "serverworld" to [administrator] ...
...done.
# ユーザーを削除する場合は以下

[root@dlp ~]#
rabbitmqctl delete_user serverworld

Deleting user "serverworld" ...
...done.
[4] ユーザーを追加しただけでは、まだ RabbitMQ は利用できません。
特定のバーチャルホストに対して、追加したユーザーが利用できるように権限を付与することで利用可能となります。
バーチャルホストを追加するには以下のように設定します。
# rabbitmqctl add_vhost [vhost]

[root@dlp ~]#
rabbitmqctl add_vhost /my_vhost

Creating vhost "/my_vhost" ...
...done.
# vhostリスト表示

[root@dlp ~]#
rabbitmqctl list_vhosts

Listing vhosts ...
/
/my_vhost
...done.
# vhostを削除する場合は以下

[root@dlp ~]#
rabbitmqctl delete_vhost /my_vhost

Deleting vhost "/my_vhost" ...
...done.
[5] 追加したバーチャルホストに対して、特定のユーザーに権限を付与するには以下のように設定します。
# rabbitmqctl set_permissions [-p vhost] [ユーザー] [パーミッション ⇒ (変更) (書き込み) (読み込み) の順]

[root@dlp ~]#
rabbitmqctl set_permissions -p /my_vhost serverworld ".*" ".*" ".*"

Setting permissions for user "serverworld" in vhost "/my_vhost" ...
...done.
# vhostのパーミッション表示

[root@dlp ~]#
rabbitmqctl list_permissions -p /my_vhost

Listing permissions in vhost "/my_vhost" ...
serverworld     .*      .*      .*
...done.

# 特定のユーザーのパーミッション表示

[root@dlp ~]#
rabbitmqctl list_user_permissions serverworld

Listing permissions for user "serverworld" ...
/my_vhost       .*      .*      .*
...done.

# 特定のvhostに対して特定ユーザーのパーミッションを削除する場合は以下

[root@dlp ~]#
rabbitmqctl clear_permissions -p /my_vhost serverworld

Clearing permissions for user "serverworld" in vhost "/my_vhost" ...
...done.
 
Tweet