外部連携構成

いずれかの構成でセットアップした 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 (シェル例で ' を含む値を扱う場合) を参照。