外部連携構成
いずれかの構成でセットアップした KE2.0 システムの外部に、ジョブマネージャを単体で配置したり、kompira_sendevt をインストールしてメッセージ送信に利用したい場合があります。ここでは、こうした外部連携の構成について説明します。
KE2.0 側での準備
外部にジョブマネージャや kompira_sendevt を配置して、KE2.0 システムと連携させたい場合、KE2.0 システム側で以下の準備が事前に必要になります。
- AMQPS 接続を許可するファイヤーウォールの設定
- rabbitmq に外部接続用のユーザの追加とパーミッションの設定
AMQPS の接続許可
まず OS ごとの手順で AMQPS (5671番ポート) の許可設定を行なってください。firewall-cmd を使う場合の例は以下のようになります。KE2.0 がクラスタ構成の場合は全てのノードで許可設定を行なってください。
$ sudo firewall-cmd --add-service=amqps --permanent
$ sudo firewall-cmd --reload
rabbitmq へのユーザ追加
続けて rabbitmq に外部から接続するためのユーザーを追加し、パーミッションを設定してください。
$ docker exec $(docker ps -q -f name=rabbitmq) rabbitmqctl add_user '<AMQP_USER>' '<AMQP_PASSWORD>'
$ docker exec $(docker ps -q -f name=rabbitmq) rabbitmqctl set_permissions --vhost / '<AMQP_USER>' '.*' '.*' '.*'
注: 上記のユーザ名・パスワードはあくまで「設定する値の形式」を示す例示です。任意の値を使用できますので、お使いの環境のセキュリティポリシーに合わせて設定してください。特にパスワードは推測されにくい十分に強いものを指定してください。
具体例として、ユーザ名を kompira_mq で設定する場合は以下のようになります。
$ docker exec $(docker ps -q -f name=rabbitmq) rabbitmqctl add_user kompira_mq '<AMQP_PASSWORD>'
$ docker exec $(docker ps -q -f name=rabbitmq) rabbitmqctl set_permissions --vhost / kompira_mq '.*' '.*' '.*'
ここで設定したユーザ名・パスワードは、外部 jobmngrd や kompira_sendevt 側で AMQP_URL に埋め込んで接続に使用します。ユーザ名・パスワードのいずれかに URL 安全でない文字を含むケースの取り扱いについては 資格情報管理 §5 を参照してください。
注: 上記コマンド例は値をシングルクオートで囲む形式のため、シェル特殊文字 (
#/ 空白 /$/!等) を含むパスワードでも安全にコピペできますが、値自体に'(シングルクオート) を含む場合は閉じてしまうため別途エスケープが必要です。対処方法は同じく 資格情報管理 §5 (シェル例で'を含む値を扱う場合) を参照。